Kettle集群环境搭建和部署

Kettle集群环境搭建和部署

Kettle,俗称水壶,一个神奇的ETL利器!在数据仓库建设中扮演着重要角色。Kettle简单方便的界面化操作受到Java程序员的青睐。这次与大家一起来瞧瞧Kettle伪分布式和全分布式环境的搭建。

一、伪分布式

、环境准备

(1)Kettle安装文件

pdi-ce-7.1.0.0-12.zip

(2)一台Linux服务器

服务器规划如下:

通过在一台服务器上设置不同端口号来配置Kettle伪分布式集群,8080为Kettle主服务器端口号,8081和8082分别为Kettle的两个从服务器(或者称为子服务器)端口号。

(3)安装jdk

需要安装jdk环境(略)。

(4)搭建Hadoop伪分布集群

因测试时使用HDFS文件系统,所以我们需要搭建好Hadoop伪分布式集群(略)。

1、上传文件

将Kettle安装文件pdi-ce-7.1.0.0-12.zip上传到Linux系统/root/tools目录下,如图:

上传成功后,如图:

2、解压文件

执行如下zip压缩文件解压命令:

unzip -d ~/training/ pdi-ce-7.1.0.0-12.zip

将文件解压到/root/training目录下,成功解压后,如图:

3、配置环境变量

Kettle目录与Hadoop,Hbase等有所不同,在Kettle的安装目录下并没有bin目录,常用命令直接放在了安装目录下,所以Kettle环境变量如下配置即可:

保存退出,执行source ~/.bash_profile命令,生效配置文件。

4、修改集群配置文件

进入Kettle的data-integration/pwd目录下,如图:

在该目录下含有6个文件

一个主服务器配置文件carte-config-master-8080.xml,四个从服务器配置文件

carte-config-8081.xml

carte-config-8082.xml

carte-config-8083.xml

carte-config-8084.xml

,这里我们使用前两个文件来配置两个子服务器,分别是slave1和slave2,

还有一个集群账号密码文件kettle.pwd(密码可以修改)。

(1)主服务器配置

主服务器配置文件carte-config-master-8080.xml内容如下:

master1

localhost

8080

Y

其中name属性指定Kettle主服务器名称,hostname属性指定Kettle主服务器IP地址,port属性指定Kettle主服务器端口号,master属性指定是否是主服务器。伪分布式环境不需要配置该文件。

(2)子服务器配置

子服务器配置文件carte-config-8081.xml内容如下:

master1

localhost

8080

cluster

cluster

Y

Y

slave1-8081

localhost

8081

cluster

cluster

N

配置属性分为两块,第一块masters属性配置主服务器信息,必须与主服务器配置相同,slaveserver配置子服务器信息,注意slaveserver中的master属性值为N。伪分布式环境下,该文件也不需要做任何配置。

(3)plugin.properties

Kettle默认提供了4个Hadoop版本,分别为cdh、emr、hdp、mapr。我们使用cdh版本。进入data-integration/plugins/pentaho-big-data-plugin/目录,打开plugin.properties文件,增加使用的hadoop版本,如下:

(4)拷贝Hadoop配置文件

在data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh510目录下,Kettle提供了Hadoop的cdh版本默认配置文件,我们将Hadoop的配置文件core-site.xml、mapred-site.xml、yarn-site.xml拷贝到该目录下,对文件进行覆盖。

5、添加jar包

需要将数据库连接驱动包拷贝到Kettle的安装目录data-integration/lib目录下,比如Oracle数据库连接驱动包ojdbc14.jar。

6、启动Kettle集群

在命令窗口执行

carte.sh 192.168.189.111 8080

命令,启动Kettle主服务器。启动成功后,如图:

重新打开两个Xshell连接,分别执行

carte.sh 192.168.189.111 8081

carte.sh 192.168.189.111 8082

命令,启动两个Kettle子服务器。启动成功后,如图:

slave1:

slave2:

我们分别登录Kettle集群管理页面(192.168.189.111:8080、192.168.189.111:8081、192.168.189.111:8082),如图:

填入配置文件中的账号和密码,登录成功后,如图:

至此,Kettle伪分布式集群环境已经搭建好。

7、测试

(1)创建转换

我们打开Windows本地的Kettle界面,创建一个转换,如图:

转换中,包含三个组件:

a、emp表输入组件

完成连接oracle数据库,并可以预览emp表数据,如图:

b、排序记录组件

完成所有记录排序,如图:

c、emp表Hadoop File输出组件

将排序后的记录输出到HDFS文件系统中,如图:

(2)提交执行转换

下面我们在Windows本地远程使用刚搭建好的Kettle集群执行该转换。也就是说,具体操作在本地完成,实际上整个转换在Linux系统Kettle集群中运行,如图:

选择转换执行方式,点击启动,转换将被提交到Kettle集群的master服务器上,master接收到请求后将转换任务分发给两个子服务器,各服务器日志如下:

master:

master服务器连接Oracle数据库,查询数据,查询成功后关闭数据库连接,然后将任务分发给slave从服务器,等待读取从服务器运行结果,当读取到从服务器上排序好的数据时写入HDFS文件系统。

slave1:

slave1服务器从主服务器上读取部分数据(这里是7条)进行排序操作,排序完成后写入主服务器。

slave2:

slave2服务器从主服务器上读取部分数据(这里也是7条)进行排序操作,排序完成后写入主服务器。

(3)查看PDI状态

登录管理页面,如图:

master:

slave1:

slave2:

页面记录了本次转换的名称,ID,运行状态等信息。

(4)查看运行结果

登录HDFS文件系统,如图:

在/kettle/oracle目录下生成了emp.txt文本文件,查看文本数据,如图:

数据已经被成功排序!

二、全分布式

、环境准备

(1)准备三台服务器

集群规划如下:

bigdata112作为Kettle主服务器,服务器端口号为8080,bigdata113和bigdata114作为两个子服务器,端口号分别为8081和8082。

(2)安装jdk

每台服务器需要安装jdk环境(略)。

(3)搭建Hadoop全分布式集群

因测试时使用HDFS文件系统,所以需要事先搭建好Hadoop全分布式集群,集群规划如下:

1、bigdata112环境配置

上传文件、解压文件、配置环境变量三个步骤与伪分布式环境下配置相同,配置好后,继续做如下配置:

(1)修改集群配置文件

a、主服务器配置文件carte-config-master-8080.xml,如下配置:

master1

192.168.189.112

8080

Y

b、子服务器配置文件carte-config-8081.xml,如下配置:

master1

192.168.189.112

8080

Y

Y

slave1-8081

192.168.189.113

8081

cluster

cluster

N

c、子服务器配置文件carte-config-8082.xml,如下配置:

master1

192.168.189.112

8080

Y

Y

slave1-8082

192.168.189.114

8082

cluster

cluster

N

(2)plugin.properties

与伪分布式环境相同。

(3)拷贝Hadoop配置文件

这里需要将全分布式Hadoop集群的配置文件core-site.xml、mapred-site.xml、yarn-site.xml拷贝到data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh510目录下,对文件进行覆盖。

(4)添加jar包

与伪分布式环境相同。

2、bigdata113和bigdata114配置

(1)目录拷贝

将bigdata112上已经配置好的Kettle安装目录data-integration远程拷贝到bigdata113和bigdata114服务器上,远程拷贝命令如下:

(2)环境变量配置

同bigdata112相同,在bigdata113和bigdata114服务器上配置Kettle的环境变量,并使配置文件生效。

3、启动Kettle集群

分别在三台服务器上执行如下命令:

carte.sh 192.168.189.112 8080

carte.sh 192.168.189.113 8081

carte.sh 192.168.189.114 8082

命令,启动Kettle集群。

4、测试

(1)创建转换

与伪分布式环境类似,打开Windows本地的Kettle界面,创建一个转换,如图:

以Kettle全分布式集群方式执行该转换,转换将被提交到Linux系统的Kettle集群中,bigdata112接收到请求后,将任务分发给子服务器bigdata113和bigdata114执行。执行结束后,查看执行日志如下:

master:

slave1:

slave2:

查看执行结果,如下:

在Kettle全分布式集群环境下,emp表被成功排序!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180622G03NWZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券