Kettle — 集群使用

时间:2024-03-31 17:47:24

Kettle集群介绍

在Kettle中合理的使用集群可以加快执行的速度,并且还能在部分服务器宕机的情况下继续使用。在Kettle中集群是由一个主Carte服务器和多个从Carte服务器组成。在执行转换时,主服务器负责分发跟踪任务和收集结果总汇,从服务器负责具体的转换执行。在Kettle中,如果主服务器也宕机的话并不存在服务器(类似于redis、zookeeper等)重新选举的功能,也就是说一旦主服务器宕机,则Kettle集群就不能使用了。

使用场景

需要kettle集群的主要场景包括以下两点:

         1.转换中需要大量的计算以及其他耗时步骤

         2.需要系统持续不断的运行

Carte集群搭建

在Kettle的官方文档上说Carte的集群部署分为静态模式和动态模式,由于静态模式和动态模式部署区别不大,这里就直接使用比较灵活的动态模式。Carte集群的搭建还是非常简单的,我这里以本地搭建集群为例。

1.首先是将JDBC驱动程序拷贝到主从服务器上(如果是本地搭建不需要)

2.进入到PDI的pwd目录下,如下所示。

Kettle — 集群使用

先配置master的xml文件。如下所示,所有的属性都非常的容易理解。

Kettle — 集群使用

对于从服务器配置也没有什么特别的地方,我们需要配置指定的主服务器。

Kettle — 集群使用

3.运行Carte,并指定配置文件

Kettle — 集群使用

出现端口监听后则代表启动成功。

Kettle — 集群使用

这样将所有的Carte启动即可。

在转换中配置集群

上面是搭建了Carte集群,下面是对转换进行集群配置调用。

1.配置子服务器

对子服务配置很简单,基本都是Carte服务器连接的信息。

Kettle — 集群使用

2.Kettle集群schemas配置

schemas配置同样很简单,不过有一点要注意的,就是需要勾上Dynamic cluster选项。因为我们是动态集群,如果有部分从服务器失去连接,也能执行。如果没有勾选,就以静态集群使用,如果有部分服务器失去连接,就会报connect refused错误。

Kettle — 集群使用

3.对需要集群运行的步骤设置集群运行。

Kettle — 集群使用

集群运行配置

使用集群启动,需要先进行启动配置,选择remote中的Clustered。

Kettle — 集群使用

然后运行的时候选择我们刚刚配置的集群运行模式即可。从日志中我们可以看到主服务器只是做任务转发和合并的工作。如果不是集群的步骤,则指定一个从服务器执行;如果是集群步骤则将输入的流分均分给从服务器执行。

Kettle — 集群使用

官方链接:

https://help.pentaho.com/Documentation/8.1/Products/Data_Integration/Carte_Clusters/Setup

https://help.pentaho.com/Documentation/8.1/Products/Data_Integration/Data_Integration_Perspective/Transformations#Run_Configurations