Kettle集群介绍
在Kettle中合理的使用集群可以加快执行的速度,并且还能在部分服务器宕机的情况下继续使用。在Kettle中集群是由一个主Carte服务器和多个从Carte服务器组成。在执行转换时,主服务器负责分发跟踪任务和收集结果总汇,从服务器负责具体的转换执行。在Kettle中,如果主服务器也宕机的话并不存在服务器(类似于redis、zookeeper等)重新选举的功能,也就是说一旦主服务器宕机,则Kettle集群就不能使用了。
使用场景
需要kettle集群的主要场景包括以下两点:
1.转换中需要大量的计算以及其他耗时步骤
2.需要系统持续不断的运行
Carte集群搭建
在Kettle的官方文档上说Carte的集群部署分为静态模式和动态模式,由于静态模式和动态模式部署区别不大,这里就直接使用比较灵活的动态模式。Carte集群的搭建还是非常简单的,我这里以本地搭建集群为例。
1.首先是将JDBC驱动程序拷贝到主从服务器上(如果是本地搭建不需要)
2.进入到PDI的pwd目录下,如下所示。
先配置master的xml文件。如下所示,所有的属性都非常的容易理解。
对于从服务器配置也没有什么特别的地方,我们需要配置指定的主服务器。
3.运行Carte,并指定配置文件
出现端口监听后则代表启动成功。
这样将所有的Carte启动即可。
在转换中配置集群
上面是搭建了Carte集群,下面是对转换进行集群配置调用。
1.配置子服务器
对子服务配置很简单,基本都是Carte服务器连接的信息。
2.Kettle集群schemas配置
schemas配置同样很简单,不过有一点要注意的,就是需要勾上Dynamic cluster选项。因为我们是动态集群,如果有部分从服务器失去连接,也能执行。如果没有勾选,就以静态集群使用,如果有部分服务器失去连接,就会报connect refused错误。
3.对需要集群运行的步骤设置集群运行。
集群运行配置
使用集群启动,需要先进行启动配置,选择remote中的Clustered。
然后运行的时候选择我们刚刚配置的集群运行模式即可。从日志中我们可以看到主服务器只是做任务转发和合并的工作。如果不是集群的步骤,则指定一个从服务器执行;如果是集群步骤则将输入的流分均分给从服务器执行。
官方链接:
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