kettle 作为一个 java 的开源 ETL 工具,支持的接入源与输出源很丰富,
下面测试简单的 数据库 table -> table -> hdfs 文件的写入。
简介:kettle 主目录分为作业和转换
转换: 用来配置ETL 链路信息,及工作方式。
作业: 用来启动和控制转换工作。
1. 安装环境
kettle 依赖于 java 环境,请安装好 Java ,并设置好 jdk 环境变量
2. 安装 kettle
下载地址:/projects/data-integration/
下载速度有点慢,有条件者可以使用 vpn
下载完成,解压,双击 打开kettle
3. 双击转换新建一个转换任务。
4. 源端选择 打开输入-> 表输入,将表输入拖到右边工作台上
5. 双击表输入,输入源端数据库基本信息
此时可以看出提示驱动找不到,下载 mysql 驱动包,放入 lib 目录下,重启 kettle
6. 测试数据库连接成功
7. 输入源端数据查询语句,配置完成
8. 点击 输出 -> 插入/更新 ,拖放到右端工作台上,并与目标端连接
用鼠标中建连接源端与目标端,或者选中源端,按 shift 将源端指向目标端
9. 双击输入目标端数据库信息
9. 配置装载规则,点击确认,数据库装载配置完成
10. 点击 big data -> Hadoop File output,将此拖放到右边工作台,并连接
11. 双击 hadoop file output,添加 hadoop 集群配置
输入集群信息,点击测试
12. 此时会弹出 hadoop 版本的基本信息,记下此信息,之后会用到
13. 此时可能你会遇到错误
The Active Shim has not been set.
14. 打开plugins\pentaho-big-data-plugin\ 文件
修改 为 =cdh58
红字部分,就是我们上面记录的版本信息,保存现有配置,重启kettle
15. 此时再次测试 hadoop 配置,发现大多数都已通过,但是有一个警告
The Hadoop File System URL does not match the URL in the shims .
16. 复制集群中的 ,
将该 xml 文件复制到 plugins\pentaho-big-data-plugin\hadoop-configurations\cdh58,
替换原有
重启 kettle ,此时发现警告依旧。
17. 不用担心,现在警告的原因是因为 配置的 url 与 xml 配置文件里面的 url 不一样,
xml 里面用的 hostname 连接的,而我们配置的时候用的 ip,
将 ip 改为 hostname ,测试通过
注意,用 hostname 时,本地需要 添加 hosts 配置。
18. 配置 hdfs 路径信息
19. 输入输出文件名,点击确定,配置完成
20. 点击文件->新建->作业,配置 start,和转换
21. start 基本不需要配置,双击转换
选择我们之前保存的转换文件,点击确定,配置完成
22. 点击 run ,启动 job
23. 执行成功
2.4 查看写入情况
至此,配置成功
kettle 中还有很多其他功能的组件,使用时只需根据需求,配置不同功能组件即可