您的位置:首页 > 运维架构 > Linux

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行

2014-07-29 15:48 253 查看
Kettle集群(cluster)在多个服务器(windows、linux)上并发执行

网络感知中心

2014年7月29日

目录

一、 Kettle的部署...3

二、
服务器介绍...3

三、 carte相关配置文件说明...3

四、 carte服务开启...4

五、 在kettle图形界面中对集群进行设定...5

六、 基于kettle集群模式对数据库表进行排序...6

1、 创建数据库连接...6

2、 创建表输入...7

3、 使用排序记录对数据库表中的数据进行排序处理。...8

七、 表输出...9

八、 执行转换...9

九、 结果输出...10

关于kettle集群在单机上的测试可参考文档:http://www.cnblogs.com/inuyasha1027/p/3259402.html。这里主要介绍服务器分布在不同主机上的情况。

一、Kettle的部署

不管是linux下还是windows下部署kettle前提是机器上都已安装JDK。其次把kettle的安装文件解压后即可。Windows下启动spoon.bat;linux下启动spoon.sh。

二、服务器介绍

本实验使用的服务器:

127.0.0.1 lixuemei-PC

10.2.2.11 DBM011

10.4.2.12 DBM012

10.2.2.10 DBM010

三、carte相关配置文件说明

本实验开启的四个carte服务,其中一台为Master另外三台为Slave,来实现在Kettle的Spoon中对mysql数据库中数据表读取后,以集群方式来执行排序的过程。

Carte的配置文件所在路径:F:\BDE\kettle\data-integration\pwd

(1)主服务器(carte-config-master-8080.xml)的配置内容为:

<slaveserver>

<name>master1</name>

<hostname>lixuemei-PC</hostname>

<port>8080</port>

<master>Y</master>

</slaveserver>

其中<hostname>lixuemei-PC</hostname>表示以本机作为主服务器。在本机的C:\Windows\System32\drivers\etc\hosts 文件中添加内容:127.0.0.1 lixuemei-PC。相应的其他三个服务器上的hosts文件中也添加内容:10.200.4.163lixuemei-PC。

(2)子服务器(carte-config-8082.xml)的配置内容为:

<masters>

<slaveserver>

<name>master1</name>

<hostname>lixuemei-PC</hostname>

<port>8080</port>

<username>cluster</username>

<password>cluster</password>

<master>Y</master>

</slaveserver>

</masters>

<report_to_masters>Y</report_to_masters>

<slaveserver>

<name>slave2-8082</name>

<hostname>10.2.2.11</hostname>

<port>8082</port>

<username>cluster</username>

<password>cluster</password>

<master>N</master>

</slaveserver>

其中<hostname>10.2.2.11</hostname>为子服务器的ip。

同样方式设定其他自服务器(carte-config-8083.xml、carte-config-8085.xml)的配置内容。把更改好的windows下的pwd文件夹分别覆盖其他三个服务器上的相应文件夹。

四、carte服务开启

对于Windows运行:Carte.batIP address port

对于Linux运行:carte.shIP address port

图1所示启动windows上的主节点,并已启动成功。



图1 Master1
相似地,图2—图4在linux上启动其他三个子节点:



图2 Slave1-8085



图3 Slave2-8082



图4 Slave3-8083
五、在kettle图形界面中对集群进行设定

特别需要注意的是:服务器的名称一定要与pwd文件夹下面的配置文件<name>属性所对应的值是一致的。所新建的子服务器一定要在pwd文件夹下面要有对应的配置文件才可以。

图5所示配置好的主节点,需要在“是服务器吗”选项勾选。



图5 主节点配置
图6所示配置好的三个配置好的子节点,在"是主服务器吗?"这个选项中,因为它不是主服务器,所以不对其进行勾选。



图6 子节点配置
下图是将各个子服务器导入到集群中,命名为linux_test_cluster:



图7 kettle集群schemas设定
六、基于kettle集群模式对数据库表进行排序

1、 创建数据库连接

点击【主对象树】下的【DB连接】进行创建数据库连接。



图8 数据库连接
2、 创建表输入

在【核心对象】中的【输入】中把【表输入】拖到主窗口。双击工作区中的【表输入】图表就可以写对应的查询语句:



图9 创建表输入
3、 使用排序记录对数据库表中的数据进行排序处理。

在【核心对象】中的【转换】中把【排序记录】拖到主窗口。双击工作表中的【排序记录】,设置需要排序的字段,具体如下图:



图10 排序记录设定
如果要实现的是集群并发的方式来对数据进行排序,需要右键单击【排序记录】后选择【集群】



图11 选择集群
确定后【排序记录】成如下情形:



图12 选择集群后结果
七、表输出

对于输出,我们输出到site数据库的kettle_rank_site_copy表:



图13 创建表输出
八、执行转换

执行转换时选择【集群方式执行】:



图14 集群方式执行
九、结果输出



图15 Master1输出



图16 slave1-8085输出



图17 slave2-8082输出



图18 slave3-8083输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: