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

 

 

 

 

 

 

 

 

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

 

 

 



 

目录

一、        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)的配置内容为:

 

   master1

   lixuemei-PC

   8080

   Y

 

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

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

 

   

     master1

     lixuemei-PC

     8080

      cluster

     cluster

     Y

   

 

 

 

 Y

 

 

   slave2-8082

   10.2.2.11

    8082

   cluster

   cluster

   N

 

         其中10.2.2.11为子服务器的ip。

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

四、carte服务开启

对于Windows运行:Carte.batIP address port

对于Linux运行:carte.shIP address port

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


Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第1张图片

图1 Master1

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第2张图片


图2 Slave1-8085

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第3张图片

图3 Slave2-8082

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第4张图片

图4 Slave3-8083

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

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

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第5张图片

图5 主节点配置

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第6张图片

图6 子节点配置

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第7张图片

图7 kettle集群schemas设定

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

1、  创建数据库连接

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第8张图片

图8 数据库连接

2、  创建表输入

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

 

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第9张图片

图9 创建表输入

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

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第10张图片

图10 排序记录设定

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第11张图片

图11 选择集群

                   确定后【排序记录】成如下情形:

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第12张图片

图12 选择集群后结果

七、表输出

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第13张图片

图13 创建表输出

八、执行转换

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

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第14张图片

图14 集群方式执行

九、结果输出

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第15张图片

图15 Master1输出

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第16张图片

图16 slave1-8085输出

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第17张图片

图17 slave2-8082输出

Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行_第18张图片

图18 slave3-8083输出

你可能感兴趣的:(Kettle 集群(cluster)在多个服务器(windows、linux)上并发执行)