kettle概述
Kettle 是一款开源的 ETL 工具,纯 Java 编写,可以在 Window、Linux、Unix 上运行,绿色无需安装,数据抽取高效稳定。
ETL工具:ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
概念
Transformation(转换):数据抽取/迁移主要设计的对象,负责定义数据从数据源到目标地流动。各步骤并发执行。
Job(作业):支持组合多个转换,即流程控制,支持定时任务执行。各步骤按一定规则顺序执行,可定义为并行执行。
Step(步骤):最核心的概念,转换和作业都是由步骤组成,数据转换和数据清洗都是在步骤中完成,步骤是 Kettle 具体做事情的对象。
hop(跳):即连接,步骤与步骤之间的连接称之为跳。代表数据流量。
产品
Kettle 主要包含4类产品,Spoon,Carte,Pan,Kitchen。
Spoon:可视化开发工具。可视化运行,监控等。
Carte:轻量级 Web 服务器,支持远程执行 Kettle 脚本。
Pan:命令行执行 Kettle Transformation 脚本。如:pan.sh file=xxx.ktr 。
Kitchen:命令行形式执行 Kettle Job 脚本工具。如:kitchen.sh file=xxx.kjb 。
安装部署
windows
安装 JDK
下载 Kettle 压缩包,Kettle 是绿色软件,解压缩到任意本地路径即可
双击 Spoon.bat,启动图形化界面工具,就可以直接使用了
单机(linux)
运行数据库资源库中的转换
[djm@hadoop102 data-integration]$./pan.sh -rep=my_repo -user=admin -pass=admin -trans=stu1tostu2 -dir=/
参数说明:
rep:资源库名称
user:资源库用户名
pass:资源库密码
trans:要启动的转换名称
dir:目录(不要忘了前缀 /)
运行资源库里的作业:
[djm@hadoop102 data-integration]$./kitchen.sh -rep=repo1 -user=admin -pass=admin -job=jobDemo1 -logfile=./logs/log.txt -dir=/
参数说明:
rep:资源库名
user:资源库用户名
pass:资源库密码
job:job名
dir:job路径
logfile:日志目录
集群安装
准备三台服务器,hadoop102 作为 Kettle 主服务器,服务器端口号为 8080,hadoop103 和 hadoop104 作为两个子服务器,端口号分别为 8081 和 8082
上传解压 kettle 的安装包
进到 /opt/module/data-integration/pwd 目录,修改配置文件
修改主服务器配置文件 carte-config-master-8080.xml
<slaveserver>
<name>master</name>
<hostname>hadoop102</hostname>
<port>8080</port>
<master>Y</master>
<username>cluster</username>
<password>cluster</password>
</slaveserver>
省略,参考:
使用
- 生产环境和开发环境使用不同的数据库连接
~/.kettle/kettle.properties里设置key=value
在kettle.properties中添加变量,然后在类似数据库连接的地方可以用${key}来使用,这样可以实现开发环境和生产环境配置的差异,就算往资源库里提交也可以互不影响了