Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation(.ktr)和job(.kjb),transformation完成针对数据的基础转换,job则完成整个工作流的控制。
kettle集群中,主节点主要充当将任务分给从节点的角色,而从节点则是真正计算处理数据的节点,数据处理完毕后则将数据合并到主节点,然后主节点再将数据返回给客户端
目录
- 一、安装环境
- 二、环境准备
- 三、kettle分布式集群搭建步骤
- 四、集群测试
一、安装环境
操作系统: CentOS 7
kETTLE版本: pdi-ce-9.0.0.0-423
集群:
192.168.111.241 master
192.168.111.242 slave1
192.168.111.243 slave3
192.168.111.245:MySQL服务器(测试用,包括源库表和目标库表)
二、环境准备
1、JDK安装(每个节点都要安装配置)
yum安装JDK
[root@master ~]# yum install java-1.8.0-openjdk* -y
环境变量配置
/etc/profile文件中追加以下:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
export PATH=$PATH:$JAVA_HOME/bin
2、配置主机名(每个节点都要配置)
hostname文件
/etc/hostname文件将主机名修改,其中master机器中写入master,slave1机器写入slave1,slave2机器写入slave2
如master:
hosts文件
在hosts文件中写入各个节点的IP及主机名映射
3、MySQL数据库安装配置
此步骤省略,当然不一定是MySQL数据库,你也可以是Oracle等等其他数据库,此处数据库只是用来最后测试用
三、kettle分布式集群搭建步骤
1、下载kettle安装包
各个版本下载地址:https://sourceforge.net/projects/pentaho/files/
可以下载到本机,然后将压缩包上传到服务器,也可以直接在服务器上直接用wget下载
2、上传
如果下载到本机的话就需要上传到各个服务器,如果是在服务器上使用wget命令下载的话,每个节点都需要下载,同时本机(用来测试)也保留一份
3、解压
# 各个节点都要操作,此处以主节点为例
[root@master home]# unzip pdi-ce-9.0.0.0-423.zip
4、修改配置文件
需要修改的配置文件及所在目录
说明: 并不是所有的配置文件都要修改,其中,
carte-config-master-8080.xml是主节点需要修改的配置文件
carte-config-808X.xml是从节点需要修改的配置文件,需要多少个从节点就修改多少个,本例使用了两个从节点,因此修改其中两个即可
master节点上
修改carte-config-master-8080.xml
参数说明:
name是节点名称
hostname是本机IP或主机名
port是监听端口
master:Y为本节点是主节点,N为本节点为从节点
username:集群界面登录用户名
password:集群界面登录密码
slave1节点
修改carte-config-8081.xml
其中,<master>标签中的信息是跟master节点中配置的主节点配置文件(master节点上的carte-config-master-8080.xml文件)是一致的,下面的<slaveserver>标签中的配置为从节点的配置,各个参数意义跟master的是一样的
slave2节点
修改 carte-config-8082.xml
修改方式与修改slave1的方式一致
下载mysql驱动包
下载mysql驱动包并放到data-integration/lib 目录下(因为后面需要用mysql测试,如果使用其他数据库的话那就下载对应数据库的驱动包),每个节点都需要
启动master
[root@master data-integration]# nohup ./carte.sh 192.168.111.241 8080 &
启动slave1
[root@slave1 data-integration]# nohup ./carte.sh 192.168.111.242 8081 &
启动slave1
[root@slave2 data-integration]# nohup ./carte.sh 192.168.111.243 8082 &
四、集群测试
1、在本机中将下载的kettle解压,并双击spoon.bat进入kettle图形界面
2、在spoon中新建一个转换
然后在新建的转换中选择主对象树-子服务器-新建子服务器
主节点
从节点
其中,填写的信息要跟刚刚在服务器上配置的XML文件要一致,master子服务器填写master中配置文件的信息,slave则填写相应slave信息的
2、配置schema
选择主对象树-集群schema-新建schema
将刚刚配置的子服务器都添加进入
3、测试
1、准备一张有数据的表
2、刚刚创建的转换中简单弄一个转换过程
3、右键排序记录,点击集群,然后选择集群名称
执行转换,并选择以集群方式执行,并在各个服务器查看日志
查看各个节点的日志:
master
slave1
slave2
网页端: