前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pentaho Work with Big Data(八)—— kettle集群

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

作者头像
用户1148526
发布2022-05-07 13:10:34
4760
发布2022-05-07 13:10:34
举报
文章被收录于专栏:Hadoop数据仓库Hadoop数据仓库

一、简介         集群技术可以用来水平扩展转换,使它们能以并行的方式运行在多台服务器上。转换的工作可以平均分到不同的服务器上。         一个集群模式包括一个主服务器和多个子服务器,主服务器作为集群的控制器。简单地说,作为控制器的Carte服务器就是主服务器,其他的Carte服务器就是子服务器。         一个集群模式也包含元数据,元数据描述了主服务器和子服务器之间怎样传递数据。在Carte服务器之间通过TCP/IP套接字传递数据。 二、环境 4台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. 编辑转换 (1)建立转换如图8所示。

图8

说明: . 这个转换的详细配置参考 http://blog.csdn.net/wzy0623/article/details/51160948中的“把数据从Hive抽取到RDBMS”。 . 右键点击“Table output”,选择弹出菜单里的“集群...”,如图9所示。

图9

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

图10

此时会看到“Table output”步骤的右上角出现“Cx2”标志,如图8的红框中所示,说明此步骤在集群的两个子服务器上运行。 . “Table input”没有集群标志,说明此步骤在主服务器上运行。 4. 执行与监控 (1)在192.168.56.104上执行下面的命令启动master。

代码语言:javascript
复制
cd /home/grid/data-integration/
./carte.sh 192.168.56.104 8181

(2)在192.168.56.102上执行下面的命令启动slave1。

代码语言:javascript
复制
cd /home/grid/data-integration/
./carte.sh 192.168.56.102 8181

(3)在192.168.56.103上执行下面的命令启动slave2。

代码语言:javascript
复制
cd /home/grid/data-integration/
./carte.sh 192.168.56.103 8181

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

图11

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

图12

(6)转换成功执行后,会在监控标签中看到执行信息,如图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. 编辑转换 (1)建立转换如图19所示。

图19

说明: . 这个转换的详细配置参考 http://blog.csdn.net/wzy0623/article/details/51160948中的“把数据从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文件,内容如下:

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
<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>

(4)执行下面的命令启动master。

代码语言:javascript
复制
cd /home/grid/data-integration/
./carte.sh pwd/carte-config-8181.xml

master启动之后,启动slave。 (5)在192.168.56.102上执行下面的命令启动slave1。

代码语言:javascript
复制
cd /home/grid/data-integration/
./carte.sh pwd/carte-config-8181.xml

(6)在192.168.56.103上执行下面的命令启动slave2。

代码语言:javascript
复制
cd /home/grid/data-integration/
./carte.sh pwd/carte-config-8181.xml

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

图21

(5)右键点击“cluster”,选择弹出菜单中的“Monitor all slave servers”,如图12所示。 (6)转换成功执行后,会在监控标签中看到执行信息,如图22到24所示。

图22

图23

图24

从图23可以看到,“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解决方案

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档