0


kettle在Linux下分布式集群服务器搭建

kettle在Linux下分布式集群服务器搭建

一、Kettle的集群原理

    集群技术可以用来水平扩展转换,使得他们能够同时运行在多台服务器上。它将转换的工作量均分到不同的服务器上。生产环境中kettle服务器都是部署在linux服务器上,在windows本地开发好kettle任务,然后在linux集群环境上运行。
   一个集群schema由一台主服务器,和一些子服务器组成,主服务器作为一个集群的控制器。简单的说,我们提到的Carte控制服务器就是主服务器,其他的Carte服务器就是子服务器。

二、Kettle集群优劣势

1.集群的优点

   和其它系统的集群一样,有以下优点:
    1)多服务器运行,加快处理速度,对于大数据量的操作更明显。
    2)防单点失败,一台服务器故障后其它服务器还可以运行。

2.集群的缺点

     1)采用主从结构,不具备自动切换主从的功能。所以一旦主节点宕机,整个系统不可用。
     2)对网络要求高,节点之间需要不断的传输数据。
     3)需要更多的服务器,而且主节点没有处理能力(在该步骤没有处理能力,在其他的没有使用集群功能的步骤仍具有处理能力)。

3.适用场景

适合于:
1)需求kettle能时刻保持正常运行的场景。
2)大批量处理数据的场景。

三、完全分布式集群搭建

1. 环境规划

该环境模拟一台主服务器,两台从服务器的方式。
名称、IP端口、说明:
master:192.168.16.102:8080 主服务器
Slave1: 192.168.16.103:8081 从服务器1
Slave2: 192.168.16.104:8082 从服务器2

2. 环境准备

   首先需要先准备三台linux服务器,并且分别在三台机器上安装好jdk和kettle。虚拟机完成ip设置,ssh免密登录,同步分发脚本的编写,主机名和ip地址的映射。

(1) JDK安装

        1. 上传jdk1.8的tar包上传到Linux上的/opt/soft目录下
        2. 解压tar包到/opt/moudle/下
        3. 配置环境变量JAVA_HOME 
        4. 分发解压后的jdk目录和配置目录
        5. 让三台机器的环境变量生效

(2) Kettle安装

   1.将pdi-ce-8.2.0.0-342.ziph上传到Linux操作系统上
     unzip pdi-ce-8.2.0.0-342.zip
     cd data-integration

(3) 测试安装是否成功

在kettle的data-integration目录中执行kitchen.sh文件,若出现帮助信息,证明安装成功
./kitchen.sh
测试成功图

(4)将MySQL_jdbc驱动拷贝到data-integration->lib目录下,解决数据库连接的问题

3.环境配置

和windows环境一样修改kettle配置文件,打开kettle的安装目录,进入到data-integration->pwd目录,找到carte-config-master-8080.xml文件。该文件主要是进行master主机配置,name、hostname、port依次配置名称、主机IP和端口号(如果已经使用可以修改)。
注意:username和password并不是指主机的登陆账号和密码,是集群的账号密码,该账号密码是集群连接的依据,账号密码是通过混淆的方式保存在pwd文件,kettle默认的账号密码是cluster/cluster,所以,在本机开发的时候,为了方便,账号密码都不用修改,都使用cluster即可。

进入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内容如下:
在这里插入图片描述 主服务器配置图

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

(2)子服务器配置

carte-config-8081.xml文件是从服务器1的配置文件。打开该文件,如下图。其中masters中,name、hostname、port需要和carte-config-master-8080.xml中完全一致。然后,同样修改carte-config-8082.xml文件。子服务器配置文件carte-config-8081.xml内容如下:
在这里插入图片描述

carte-config-8081.xml配置图
在这里插入图片描述

                                               carte-config-8082.xml配置图

(3)配置kettle的环境变量,分发配置环境变量脚本,data-integration文件

(4)启动主从服务器,测试成功

启动主服务器 carte.sh 192.168.16.102 8080

在这里插入图片描述

主服务器启动图

启动第一台从服务器 carte.sh pwd/carte-config-8081.xml
在这里插入图片描述

脚本命令执行图
在这里插入图片描述

从服务器启动图

启动第二台从服务器 carte.sh pwd/carte-config-8082.xml
在这里插入图片描述

从服务器启动图
启动之后,在浏览器输入192.168.16.102:8080,出现如下图:
在这里插入图片描述

用户名和密码均为配置文件中配置的cluster,cluster
在这里插入图片描述

主服务器web端页面图
在这里插入图片描述

其他两台从服务器均以此查看web端页面,查看是否成功。
在这里插入图片描述

第一台从服务器web端页面
在这里插入图片描述

                                                 第二台从服务器web端页面

在这里插入图片描述

查看kettle子服务器的信息图

四、完全分布式集群下示例

1.需求说明

读取源数据表中数据到目标数据表中,具体转换过程如下所示
在这里插入图片描述

     组织配置图

2. 启动环境

首先按上面步骤启动集群环境,然后双击双击 Spoon.bat 启动 kettle图形界面工具。

3. 环境配置

 1) 在主对象树中新建子服务器,配置分别如下图

在这里插入图片描述
子服务器配置图
主服务器配置如上所示,记得勾选“是主服务器"。
在这里插入图片描述

主服务器配置图
在这里插入图片描述

第一台从服务器配置图
在这里插入图片描述

第二台从服务器配置图
2) 在主对象树中,在“kettle集群schmas”中右键,新建,点击“选择子服务器”,添加刚才新建的子服务器,然后确定。
在这里插入图片描述

 选择子服务器图

4. 设置运行参数

  1. 在步骤上右击,选择集群,然后会发现排序纪录多出”CX2”,表示有2个子服务器来执行。在一个三个子服务器的集群中,主服务器负责任务分发、结果收集,转换任务由从服务器执行,故只有两个节点执行。在这里插入图片描述
  2. 在主对象树中,在集群-“Run Configurations”中右键,新建,新增一个参数配置。在这里插入图片描述

Run Configurations参数配置图

5. 运行用例

点击“运行”,运行配置选择刚刚创建的参数-“集群”,点击“启动”
在这里插入图片描述

用例启动图
观察slave1和slave2后台日志,发现两个从服务器都在执行转换,主服务器没有日志,因为它只负责分发。
(1) 主服务器hadoop102上面日志信息,汇总记录总的日志信息,总共读入4677条数据,输出4677条数据。如下所示:
在这里插入图片描述

主服务器日志信息图
(2) 子服务器hadop103日志信息,该服务器总共读入2339条数据,输出2239条数据,如下所示:
在这里插入图片描述

从服务器日志信息图

(3) 子服务器hadoop104日志信息,该服务器总共读入2条数据,输出2条数据,如下所示:
在这里插入图片描述 从服务器日志信息图

(4)固定数据量子服务器的部署:
使用条件:有大数据量的数据需要处理,并且有固定的子服务器可以一直保持可连接使用(如果数据处理过程中子服务器不可用导致集群运行失败)

断开从服务器hadoop104,运行工作任务。
在这里插入图片描述

                                                             固定子服务器断开连接测试图

(5)动态集群配置
子服务器可以动态改变并没有固定数量,在带有集群的功能的作业准换运行过程中,如果子服务器断开,集群还可以继续运行直至成功。但在作业与转换启动后,如果有新的子服务器连接创建,也不会加入到正在运行的集群中。
在配置集群schemas中勾选集群,平切只选择主服务即可
在这里插入图片描述

                                                                    动态集群配置图

“kettle集群schmas”中右键,新建,点击“选择子服务器”,添加刚才新建的子服务器,然后确定。出现CxN就是动态服务器。
在这里插入图片描述

点击运行之后,测试。在断开hadoop104的从服务器配置,测试运行,并不会报错正常运行。

标签: 大数据 etl

本文转载自: https://blog.csdn.net/qq_42637432/article/details/126701453
版权归原作者 jt8666 所有, 如有侵权,请联系我们删除。

“kettle在Linux下分布式集群服务器搭建”的评论:

还没有评论