Pentaho Work with Big Data(八)—— kettle 集群

本文介绍如何使用Pentaho Data Integration (PDI)进行静态和动态集群配置,实现数据的高效并行处理。具体包括环境搭建、集群配置步骤及执行监控等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、简介

二、环境

三、配置静态集群

1. 建立子服务器

(1)打开 PDI 新建一个转换

(2)新建子服务器

2. 建立集群模式

3. 编辑转换

4. 执行与监控

(1)启动 master 与 slave 服务器

(2)保存并执行转换

(3)监控 slave 服务器

四、配置动态集群

1. 建立子服务器

2. 建立集群模式

3. 建立转换

4. 执行与监控

(1)编辑配置文件

(2)启动 master 与 slave

(3)保存并执行转换

(4)监控 slave 服务器

参考:


一、简介

        集群技术可以用来水平扩展转换,使它们能以并行的方式运行在多台服务器上。转换的工作可以平均分到不同的服务器上。
        一个集群模式包括一个主服务器和多个子服务器,主服务器作为集群的控制器。简单地说,作为控制器的 Carte 服务器就是主服务器,其它的 Carte 服务器就是子服务器。
        一个集群模式也包含元数据,元数据描述了主服务器和子服务器之间怎样传递数据。在 Carte 服务器之间通过 TCP/IP 套接字传递数据。

二、环境

        3 台 CentOS release 6.4 虚拟机,IP 地址为:
192.168.56.104
192.168.56.102
192.168.56.103

192.168.56.104 作为主 Carte。
192.168.56.102、192.168.56.103 作为子 Carte。
192.168.56.104、192.168.56.102、192.168.56.103 分别安装 Pentaho 的 PDI,安装目录均为 /home/grid/data-integration。

PDI 版本:6.0

三、配置静态集群

1. 建立子服务器

(1)打开 PDI 新建一个转换

(2)新建子服务器

        在“主对象树”标签的“转换”下,右键点击“子服务器”,新建三个子服务器。如图1 所示:

图1

        说明:

  • master、slave1、slave2 的配置分别如图2、图3、图4 所示。

图2

图3

图4

  • “用户名”和“密码”项在各自子服务器的 /home/grid/data-integration/pwd/kettle.pwd 文件中定义,如图5 所示。

图5

2. 建立集群模式

        在“主对象树”标签的“转换”下,右键点击“Kettle集群Schemas”,新建一个名为“cluster”集群模式。如图6 所示。

图6

        说明:

  • cluster 的配置如图7 所示。

图7

  • 集群模式中加入了上一步建立的一主两从 Carte 子服务器。

3. 编辑转换

        如图8 所示:

图8

        说明:

图9

  • 在弹出窗口中选择上一步建立的集群模式“cluster”后,点击确定,如图10 所示。

图10

        此时会看到“Table output”步骤的右上角出现“Cx2”标志,如图8 的红框中所示,说明此步骤在集群的两个子服务器上运行。

  • “Table input”没有集群标志,说明此步骤在主服务器上运行。

4. 执行与监控

(1)启动 master 与 slave 服务器

        在 192.168.56.104 上执行下面的命令启动 master:

cd /home/grid/data-integration/
./carte.sh 192.168.56.104 8181

        在 192.168.56.102 上执行下面的命令启动 slave1:

cd /home/grid/data-integration/
./carte.sh 192.168.56.102 8181

        在 192.168.56.103 上执行下面的命令启动 slave2:

cd /home/grid/data-integration/
./carte.sh 192.168.56.103 8181

(2)保存并执行转换

        如图11 所示,选择“集群方式执行”,勾选“提交转换”、“准备执行”、“开始执行”三项,然后点击“启动”执行转换。

图11

(3)监控 slave 服务器

        右键点击“cluster”,选择弹出菜单中的“Monitor all slave servers”,如图12 所示。

图12

        转换成功执行后,会在监控标签中看到执行信息,如图13 - 15所示。

图13

图14

图15

        从图13 可以看到,“Table input” 步骤在 master 运行,从 hive 表读取 36616 行记录,向 “Table output” 步骤输出 36616 行记录。

        从图14、图15 可以看到,“Table output” 步骤分别在两个子服务器 slave1、slave2 上运行,各自读取了 18308 行记录,并分别向 mysql 表写了 18308 行记录。此时查看 mysql 表,共写入了 36616 行记录。如图16 所示。

图16

四、配置动态集群

1. 建立子服务器

        这步和配置静态集群相同。

2. 建立集群模式

        在“主对象树”标签的“转换”下,右键点击“Kettle集群Schemas”,新建一个名为“cluster_dynamic”集群模式。如图17 所示。

图17

        说明:

  • cluster_dynamic 的配置如图18 所示。

图18

  • 与配置静态集群不同,这里只加入了 master。

3. 建立转换

        如图19 所示:

图19

        说明:

  • 这个转换的详细配置参考 Pentaho Work with Big Data(七)—— 从 Hadoop 集群抽取数据  中的“把数据从 Hive 抽取到 RDBMS”。
  • 右键点击“Table output”,选择弹出菜单里的“集群...”,如图9 所示。
  • 在弹出窗口中选择上一步建立的集群模式“cluster_dynamic”后,点击确定,如图20 所示。

图20

        此时会看到“Table output”步骤的右上角出现“CxN”标志,如图19 的红框中所示,说明此步骤在集群的两个子服务器上运行。

  • “Table input”没有集群标志,说明此步骤在主服务器上运行。

4. 执行与监控

(1)编辑配置文件

        在 192.168.56.104 上编辑 /home/grid/data-integration/pwd/carte-config-8181.xml 文件,内容如下:

<slave_config>
 <slaveserver>
   <name>master</name>
   <hostname>192.168.56.104</hostname>
   <port>8181</port>
   <username>cluster</username>
   <password>mypassword</password>
   <master>Y</master>
 </slaveserver>
</slave_config>

        在 192.168.56.102 上编辑 /home/grid/data-integration/pwd/carte-config-8181.xml 文件,内容如下:

<slave_config>
  <masters>
    <slaveserver>
      <name>master</name>
      <hostname>192.168.56.104</hostname>
      <port>8181</port>
      <username>cluster</username>
      <password>mypassword</password>
      <master>Y</master>
    </slaveserver>
  </masters>

  <report_to_masters>Y</report_to_masters>

  <slaveserver>
    <name>slave1</name>
    <hostname>192.168.56.102</hostname>
    <port>8181</port>
    <username>cluster</username>
    <password>mypassword</password>
    <master>N</master>
  </slaveserver>
</slave_config>

        在 192.168.56.103 上编辑 /home/grid/data-integration/pwd/carte-config-8181.xml 文件,内容如下:

<slave_config>
  <masters>
    <slaveserver>
      <name>master</name>
      <hostname>192.168.56.104</hostname>
      <port>8181</port>
      <username>cluster</username>
      <password>mypassword</password>
      <master>Y</master>
    </slaveserver>
  </masters>

  <report_to_masters>Y</report_to_masters>

  <slaveserver>
    <name>slave2</name>
    <hostname>192.168.56.103</hostname>
    <port>8181</port>
    <username>cluster</username>
    <password>mypassword</password>
    <master>N</master>
  </slaveserver>
</slave_config>

(2)启动 master 与 slave

        执行下面的命令启动 master:

cd /home/grid/data-integration/
./carte.sh pwd/carte-config-8181.xml

        master 启动之后,启动 slave。

        在 192.168.56.102 上执行下面的命令启动 slave1:

cd /home/grid/data-integration/
./carte.sh pwd/carte-config-8181.xml

        在 192.168.56.103 上执行下面的命令启动 slave2:

cd /home/grid/data-integration/
./carte.sh pwd/carte-config-8181.xml

(3)保存并执行转换

        如图21 所示,选择“集群方式执行”,勾选“提交转换”、“准备执行”、“开始执行”三项,然后点击“启动”执行转换。

图21

(4)监控 slave 服务器

        右键点击“cluster”,选择弹出菜单中的“Monitor all slave servers”,如图12 所示。

        转换成功执行后,会在监控标签中看到执行信息,如图22 - 24 所示。

图22

图23

图24

        从图22 可以看到,“Table input”步骤在 master 运行,从 hive 表读取 36616 行记录,向“Table output”步骤输出 36616 行记录。

        从图23 可以看到,“Table output”步骤分别在动态子服务器 slave1 运行,读取了 18308 行记录,并向 mysql 表写了 18308 行记录。

        从图24 可以看到,“Table output”步骤分别在动态子服务器 slave2 运行,读取了 18308 行记录,并向 mysql 表写了 18308 行记录。

        此时查看 mysql 表,共写入了 36616 行记录。如图16 所示。

参考:

  • 《Kettle解决方案:使用PDI构建开源ETL解决方案》
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值