kettle分布式集群搭建

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

网页端:

作者:Catke
链接:https://www.jianshu.com/p/08bbabd81b77
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注