kettle 从数据库表将数据写入 hadoop hdfs

kettle 作为一个 java 的开源 ETL 工具,支持的接入源与输出源很丰富,

下面测试简单的 数据库 table -> table -> hdfs 文件的写入。

简介:kettle 主目录分为作业和转换

    转换: 用来配置ETL 链路信息,及工作方式。

    作业: 用来启动和控制转换工作。

1. 安装环境

    kettle 依赖于 java 环境,请安装好 Java ,并设置好 jdk 环境变量

 

2. 安装 kettle 

    下载地址:http://community.pentaho.com/projects/data-integration/

    下载速度有点慢,有条件者可以使用 v*n

    下载完成,解压,双击 Spoon.bat 打开kettle

kettle 从数据库表将数据写入 hadoop hdfs

3. 双击转换新建一个转换任务。 

    

4. 源端选择 打开输入-> 表输入,将表输入拖到右边工作台上

kettle 从数据库表将数据写入 hadoop hdfs

 

5. 双击表输入,输入源端数据库基本信息

    kettle 从数据库表将数据写入 hadoop hdfs

此时可以看出提示驱动找不到,下载 mysql 驱动包,放入 lib 目录下,重启 kettle

 

6. 测试数据库连接成功

    kettle 从数据库表将数据写入 hadoop hdfs

 

7. 输入源端数据查询语句,配置完成

kettle 从数据库表将数据写入 hadoop hdfs

 

8. 点击 输出 -> 插入/更新 ,拖放到右端工作台上,并与目标端连接

    用鼠标中建连接源端与目标端,或者选中源端,按 shift 将源端指向目标端

kettle 从数据库表将数据写入 hadoop hdfs

 

9. 双击输入目标端数据库信息

kettle 从数据库表将数据写入 hadoop hdfs

 

9. 配置装载规则,点击确认,数据库装载配置完成

kettle 从数据库表将数据写入 hadoop hdfs

 

10. 点击 big data -> Hadoop File output,将此拖放到右边工作台,并连接

kettle 从数据库表将数据写入 hadoop hdfs

 

11. 双击 hadoop file output,添加 hadoop 集群配置

  输入集群信息,点击测试

kettle 从数据库表将数据写入 hadoop hdfs

 

12. 此时会弹出 hadoop 版本的基本信息,记下此信息,之后会用到

kettle 从数据库表将数据写入 hadoop hdfs

 

13. 此时可能你会遇到错误

    The Active Shim has not been set.

kettle 从数据库表将数据写入 hadoop hdfs

 

14. 打开plugins\pentaho-big-data-plugin\plugin.properties 文件

    修改 active.hadoop.configuration 为 active.hadoop.configuration=cdh58

    红字部分,就是我们上面记录的版本信息,保存现有配置,重启kettle

 

15. 此时再次测试 hadoop 配置,发现大多数都已通过,但是有一个警告

    The Hadoop File System URL does not match the URL in the shims core-site.xml.

kettle 从数据库表将数据写入 hadoop hdfs

16. 复制集群中的 core-site.xml,

    将该 xml 文件复制到 plugins\pentaho-big-data-plugin\hadoop-configurations\cdh58,

    替换原有 core-site.xml

    重启 kettle ,此时发现警告依旧。

kettle 从数据库表将数据写入 hadoop hdfs

 

17. 不用担心,现在警告的原因是因为 配置的 url 与 xml 配置文件里面的 url 不一样,

    xml 里面用的 hostname 连接的,而我们配置的时候用的 ip,

    将 ip 改为 hostname ,测试通过

    注意,用 hostname 时,本地需要 添加 hosts 配置。

kettle 从数据库表将数据写入 hadoop hdfs

 

18. 配置 hdfs 路径信息

   kettle 从数据库表将数据写入 hadoop hdfs

 

19. 输入输出文件名,点击确定,配置完成

    kettle 从数据库表将数据写入 hadoop hdfs

 

20. 点击文件->新建->作业,配置 start,和转换

 kettle 从数据库表将数据写入 hadoop hdfs

    

21. start 基本不需要配置,双击转换

    选择我们之前保存的转换文件,点击确定,配置完成

kettle 从数据库表将数据写入 hadoop hdfs

 

22. 点击 run ,启动 job

kettle 从数据库表将数据写入 hadoop hdfs

kettle 从数据库表将数据写入 hadoop hdfs

 

23. 执行成功

kettle 从数据库表将数据写入 hadoop hdfs

 

2.4 查看写入情况

    kettle 从数据库表将数据写入 hadoop hdfs

 

至此,配置成功

kettle 中还有很多其他功能的组件,使用时只需根据需求,配置不同功能组件即可