Kettle集群介绍及(windows、linux)环境搭建

一、         Kettle集群概述

1)  Kettle集群简介

    集群技术可以用来水平扩展转换,使得他们能够同时运行在多台服务器上。它将转换的工作量均分到不同的服务器上。这一部分,我们将介绍怎样配置和执行一个转换,让其运行在多台机器上。

一个集群schema由一台主服务器,和一些子服务器组成,主服务器作为一个集群的控制器。简单的说,我们提到的Carte控制服务器就是主服务器,其他的Carte服务器就是子服务器。

2)  Kettle集群优劣势

集群的优点

和其它系统的集群一样,有以下优点:

        1)多服务器运行,加快处理速度,对于大数据量的操作更明显。

        2)防单点失败,一台服务器故障后其它服务器还可以运行。

集群的缺点

         1)采用主从结构,不具备自动切换主从的功能。所以一旦主节点宕机,整个系统不可用。

         2)对网络要求高,节点之间需要不断的传输数据。

         3)需要更多的服务器,而且主节点没有处理能力(在该步骤没有处理能力,在其他的没有使用集群功能的步骤仍具有处理能力)。

适用场景

         适合于:

         1)需求kettle能时刻保持正常运行的场景。

         2)大批量处理数据的场景。

二、         Kettle集群部署方案

1)  Window本机部署三节点集群

Window本机部署只适用于本地开发环境。它作为一个伪集群方式进行部署,采用的一个kettle安装文件且用不同的端口进行集群部署。首先采用的环境是Win10,kettle版本采用的5.4.0,jdk采用的1.8.0_91。(当然,首先需要配置java环境变量,保证kettle正常启动)

1.首先确认本机是否有tomcat运行,因为kettle集群的master默认采用8080端口,这和tomcat的默认端口是冲突的,当然可以进行端口修改,自定义使用端口。

2.打开kettle的安装目录,进入到data-integration->pwd目录,找到carte-config-master-8080.xml文件。


   3.打开carte-config-master-8080.xml文件,如下图。该文件主要是进行master主机配置。

注意:在本机部署的集群环境中,建议hostname填localhost,因为开发者很多会在本机安装虚拟机,虚拟机NAT网络连接会修改本地的ip地址,如果是熟练使用wmware等虚拟机软件的开发者,请忽略。

4.carte-config-8081.xml文件是子服务器的配置文件。打开该文件,如下图。其中masters中,name、hostname、port需要和carte-config-master-8080.xml中完全一致。然后,同样修改carte-config-8082.xml文件。

注意:username和password并不是指主机的登陆账号和密码,是集群的账号密码,该账号密码是集群连接的依据,账号密码是通过混淆的方式保存在pwd文件,kettle默认的账号密码是cluster/cluster,所以,在本机开发的时候,为了方便,账号密码都不用修改,都使用cluster即可。

5.集群启动。在开始菜单中启动命令提示符(管理员),进入到data-integration目录下,输入carte.bat pwd\carte-config-master-8080.xml,启动master节点。


注意:启动时,出现attemping to load ESAPI.properties等提示为kettle出现的bug,暂时未发现解决方法。

然后,再打开一个命令提示符的窗口,进入到data-integration目录下,执行命令carte.batpwd\carte-config-8081.xml,则启动8081端口的子服务器。重复动作,启动8082端口的子服务器。

   在启动了三台集群服务器之后,在浏览器中输入localhost:8080,进入到页面如下:

输入cluster/cluster,进入到页面如下:



表示主节点已经启动完毕。输入localhost:8081及localhost:8082查看子服务器状态。

到此,windows本机三节点集群部署完毕。

2)  windows调用linux环境集群组

由于大多数kettle集群开发采用windows本地开发,然后集群环境在linux上。因此,则需要在此环境进行开发,测试及部署。

此文档的开发环境是:Centos7、kettle5.4.0、jdk1.9.0、本机为win10。

网络连接为:

本机:Vmnet8设置192.168.10.100

集群Master:192.168.10.101

集群Slave1:192.168.10.102

集群Slave2:192.168.10.103

需要在centos7上安装好jdk,配置好环境变量,并且把kettle安装好。(kettle不需要启动spoon来启动图形界面,利用kitchen调试好即可,linux上安装kettle网上有很多教程,自行查阅即可)

注意:在集群运行环境中,需要端口打开或者直接关闭防火墙,供主服务器及子服务器互相连通通讯,在centos7中,放火墙采用firewalld的方式,和以前的iptable不一样,检查端口是否开通,可以通过本机进行telnet测试。Centos7防火墙配置见笔记。

首先,像windows开发环境一样,配置pwd中的carte-config-master-8080.xml、carte-config-8081.xml和carte-config-8082.xml文件,配置文件见下图:

注意:再次声明,配置文件中的username和password并不是指主机的登陆账号和密码,是集群的账号密码,该账号密码是集群连接的依据,账号密码是通过混淆的方式保存在pwd文件,kettle默认的账号密码是cluster/cluster,修改该账号密码需要修改pwd文件。



注意:该环境将master、slave1、slave2的pwd的三个配置文件都修改了,并且都修改的一样。理论上是master修改carte-config-master-8080.xml、slave1修改carte-config-8081.xml、slave2修改carte-config-8082.xml即可。如果不修改出现了cannotconnet的报错,请三台linux系统中的pwd配置文件都进行修改。

 

启动master。在master的虚拟机(192.168.10.101)中,进入到data-integration目录下,运行./carte.sh192.168.10.101 8080。启动服务,启动192.168.10.101为carte-config-master-8080.xml设置的ip,8080为carte-config-master-8080.xml设置端口。


注意:启动时,出现attemping to load ESAPI.properties等提示为kettle出现的bug,暂时未发现解决方法。

   启动之后,在浏览器输入192.168.10.101:8080,出现如下图:

输入cluster/cluster,登陆进入。


表示master启动成功。

   启动slave1,在salve1(192.168.10.102)中,进入到data-integration目录下,运行./carte.sh192.168.10.102 8081。


启动之后,在浏览器输入192.168.10.102:8081,输入cluster/cluster出现如下图:


 表示slave1启动成功。

启动slave2,在salve2(192.168.10.103)中,进入到data-integration目录下,运行./carte.sh192.168.10.103 8082。

启动之后,在浏览器输入192.168.10.102:8081,输入cluster/cluster出现如下图:


表示slave2启动成功。

在windows本机新建子服务器及集群。在主对象树中新建子服务器,配置分别如下图,



 在主对象树中,在“kettle集群schmas”中右键,新建,点击“选择子服务器”,添加刚才新建的子服务器,然后确定。

到此,集群搭建完毕。

  集群远程执行开发。在kettle开发中,通常是需要远程调用测试环境的kettle集群来进行开发测试的。现在,集群环境在linux环境,采用远程执行的方式进行运行设计好的带有集群的kettle代码。

点击运行,选择远程执行,选择远程主机为master,然后启动。

出现如下界面:

刷新下192.168.10.101:8080、192.168.10.102:8081和192.168.10.103:8083页面,出现如下页面



如上图所见,排序记录被salve1和salve2分开执行了,表示,集群运行无误。

三、         Kettle集群开发

kettle集群开发的方式,是通过job及trans开发过程中使用集群的方式。子服务器中新建三个子服务器。

1)  trans集群开发

在主对象树子服务器中右键,新建,填写服务器连接信息

注意:该部分配置信息需要和carte-config-m、aster,-8080.xml配置信息一致,由于是主服务器,需要勾选最后一栏。

然后填写两个子服务器信息,需要和carte-config-master-8081.xml和carte-config-master-8082.xml中的信息一致。


在主对象树中的kettle集群Schemas,右键,新建,选择子服务器,将刚刚配置好的三台子服务器添加到Schemas中。


然后点击确定,这样trans中的集群配置就完成了。

  然后为了测试,做了一个trans进行集群测试,如下图。在排序的时候右键,选择集群,选择配置好的集群,该步骤右上方会有一个Cx2标识,表示有两台子服务器的集群。


点击“执行”,选择“提交转换”、“准备执行”、“开始执行”,“显示转换”如果选择则会在spoon中显示相应的运行日志。

    在trans执行过程中,刷新打开的localhost:8080/kettle/status和localhost:8081/kettle/status和localhost:8082/kettle/status,会发现我们刚才做的trans正在执行。


执行的日志同样也可以在命令提示符中可以查看。

2)  job集群开发

  job的集群开发,并不是和trans一样,job的集群开主要是将trans分配到不同的子服务器中执行。

   首先配置子服务器的方法和trans一样,如下图:

   在转换的步骤,高级选项,选择远程从服务器,选择要执行的服务器,确定,即可。

   注:如果trans是需要在在集群的环境下执行,则需要勾选上面的“在集群模式下运行这个转换”。

四、         Kettle集群笔记

1)  Centos7防火墙开端口

Centos7放火墙功能由iptables替换为firewalld。在firewalld的各种服务里,是以区域为定义进行设定的,设定的区域和网络接口关联起来生效。

防火墙的开启/关闭

#systemctl start firewalld

#systemctl enable firewalld

停止Firewalld,及关闭开机自启。

# systemctl stop firewalld

# systemctl disable firewalld

 

打开端口

firewall-cmd –zone=public –add-port=80/tcp –permanent(-permanent是永久开放端口,没有该配置在重启后开启端口失效。)

 

查看打开端口

firewall-cmd --list-all

 

打开端口之后建议重启放火墙

 

2)  Cater安全-账号密码设置

  在上面提到pwd文件夹中的master等配置文件中的username和password默认是cluster/cluster,如果需要修改密码,则需要到pwd文件夹中的kettle.pwd文件修改参数。

   如图:在pwd文件中,第一未注释的行是cluster的账号密码。其中加了OBF的意思是字符串是被混淆了的(但是并不等同于加密)。

   如果要新建一个账号密码。则只需要在下面另起一行以username:password的形式添加即可,如图。

   如果需要进行混淆,可以利用kettle自带的encr工具来进行混淆。


  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Kettle是一种开源的ETL工具,能够在Linux环境下构建数据集群Kettle Cluster)来处理大规模数据。 在Linux环境下,我们可以通过以下步骤来配置Kettle集群: 1. 首先,我们需要在每个节点上安装Kettle,并确保节点之间可以相互通信。可以使用分布式文件系统(如Hadoop HDFS)来共享数据文件,在整个集群中保持数据一致性。 2. 接下来,将Kettle的配置文件进行修改以适应集群环境。这些配置文件包括kettle.properties和slave-server.xml。在kettle.properties文件中,我们需要设置节点之间的通信端口、日志和缓存目录等参数。在slave-server.xml文件中,我们需要指定每个节点的名称和IP地址。 3. 启动Master节点。在Master节点上,我们需要使用Kitchen或Pan命令来启动Master服务器。Master服务器将负责整个集群的协调和控制。 4. 启动Slave节点。在每个Slave节点上,我们同样使用Kitchen或Pan命令来启动Slave服务器。Slave服务器将根据Master节点的指令,执行相应的数据处理任务。 5. 提交作业。在Master节点上,我们可以使用Spoon或Kitchen命令来提交ETL作业。Master节点将根据作业的要求将任务分发给不同的Slave节点进行并行处理。 6. 监控和管理。在Kettle集群中,我们可以利用Kettle自带的监控工具Pentaho BA来查看集群的运行状态、性能指标和日志信息,从而进行集群的监控和管理。 通过搭建Kettle集群,我们可以充分利用多台计算机的资源,实现大规模数据的并行处理,提高数据处理的效率和性能。同时,Kettle具有丰富的功能和灵活的配置选项,可以满足不同规模和复杂度的数据处理需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值