Centos7环境下Kettle集群环境搭建和使用示例

一、Kettle的集群原理

    完全分布式即是在该集群环境中所有的kettle服务都是部署在不同的机器上,互相之间没有影响。此处以一个真实环境为例,来介绍kettle完全分布式环境的开发使用。生产环境中kettle服务器都是部署在linux服务器上,在windows本地开发好kettle任务,然后在linux集群环境上运行。

二、完全分布式集群搭建

  1. 环境规划

     该环境模拟一台主服务器,两台从服务器的方式。

名称

IP

端口

说明

master

192.168.7.234

8080

主服务器

Slave1

192.168.7.214

8081

从服务器1

Slave2

192.168.7.215

8082

从服务器2

 2.环境准备

首先需要先准备三台linux服务器,并且分别在三台机器上安装好jdk和kettle。

(1)JDK安装

此处不做详细介绍,可参考网上安装文档。

(2)Kettle安装

创建一个目,将下载好的kettle解压后放在该文件夹下。

unzip pdi-ce-8.2.0.0-342.zip

cd data-integration

(3)测试安装是否成功
在kettle的data-integration目录中执行kitchen.sh文件,若出现帮助信息,证明安装成功

./kitchen.sh

  1. 环境配置

      打开kettle的安装目录,进入到data-integration->pwd目录,找到carte-config-master-8080.xml文件。该文件主要是进行master主机配置,name、hostname、port依次配置名称、主机IP和端口号(如果已经使用可以修改)。

注意:username和password并不是指主机的登陆账号和密码,是集群的账号密码,该账号密码是集群连接的依据,账号密码是通过混淆的方式保存在pwd文件,kettle默认的账号密码是cluster/cluster,所以,在本机开发的时候,为了方便,账号密码都不用修改,都使用cluster即可。

carte-config-8081.xml文件是从服务器1的配置文件。打开该文件,如下图。其中masters中,name、hostname、port需要和carte-config-master-8080.xml中完全一致。然后,同样修改carte-config-8082.xml文件。

至此配置完毕,可以启动集群环境了。

3、启动集群

进入到data-integration目录下,运行./carte.sh 192.168.7.234 8080,启动master节点。

出现以下日志代表启动成功。

然后,切换到slave1上,进入到data-integration目录下,运行./carte.sh 192.168.7.214 8081,则启动8081端口的子服务器。切换到slave2上,重复动作,启动8082端口的子服务器。

在启动了三台集群服务器之后,在浏览器中输入192.168.7.234:8080,输入cluster/cluster,进入到页面如下:

表示主节点已经启动完毕。输入192.168.7.214:8081及192.168.7.215:8082查看子服务器状态。到此,集群部署完毕。

三、完全分布式集群下示例

  1. 需求说明

读取源数据表中数据到目标数据表中,具体转换过程如下所示:

  1. 启动环境

首先按上面步骤启动集群环境,然后双击双击 Spoon.bat 启动 kettle图形界面工具。

      环境配置

  1. 在主对象树中新建子服务器,配置分别如下图

主服务器配置如上所示,记得勾选“是主服务器”。

从服务器slave1配置如上所示,slave2也按照上面配置,记得修改端口和名称。

在主对象树中,在“kettle集群schmas”中右键,新建,点击“选择子服务器”,添加刚才新建的子服务器,然后确定。

  1. 设置运行参数
  1. 在步骤上右击,选择集群,然后会发现排序纪录多出”CX2”,表示有2个子服务器来执行。在一个三个子服务器的集群中,主服务器负责任务分发、结果收集,转换任务由从服务器执行,故只有两个节点执行
  2. 在主对象树中,在集群-“Run Configurations”中右键,新建,新增一个参数配置。
  3. 按如上所示进行配置,选择“Settings”-“Slave server”,选择“Clustered”表示采用集群方式运行,还可以选择“master”、“slave1”、“slave2”,则表示在相应的远程服务器上运行。

  4. 运行用例
  5. 点击“运行”,运行配置选择刚刚创建的参数-“完全分布式集群”,点击“启动”

 

观察slave1和slave2后台日志,发现两个从服务器都在执行转换,主服务器没有日志,因为它只负责分发。

  1. 主服务器234上面日志信息,汇总记录总的日志信息,总共读入5条数据,输出5条数据。如下所示:
  2. 子服务器214日志信息,该服务器总共读入3条数据,输出3条数据,如下所示:
  3. 子服务器215日志信息,该服务器总共读入2条数据,输出2条数据,如下所示:
  4. 关闭iptables服务和防火墙
  5. 如果遇到集群服务器连不上的问题,需要检查一下是否是防火墙需要关闭,centos7使用iptables,可以通过命令/etc/init.d/iptables stop 停止

  6. 至此介绍结束,如果大家还想深入学习,可以扫描下图关注本人公众号,本人将在上面分享更多关于kettle的学习资料。

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值