天天看点

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

以下配置和记录只为学习使用,查看了网上资料进行的实践,这是文档记录的一个章节,提供给大家学习。

目录

1.Carte的配置

2.Carte的启动

3.Carte的停止

4.Carte的使用

4.1配置子服务器

4.2配置run configuration执行服务器

4.3carte执行

5.Carte集群设置 

5.1.配置子服务器

5.2集群运行配置

5.3步骤转换设置

5.4Carte集群执行

5.5Carte集群和carte执行器混合使用 

现在公司使用的都是8.3稳定版本的开源Pentaho,也就是习惯称呼的Kettle。一般把Pentaho server安装在linux服务器上,使得server稳定运行,在Windows系统下安装客户端PDI使用。

客户端PDI连接Pentaho server的repository存储库后,都会把任务提交到server上或者设置调度计划执行作业。而不会在PDI客户端上调度作业。

但为了提高Pentaho的性能,可以增加多台carte服务器建立一个集群,下图是Pentaho性能扩展方式:

1.使用转换步骤中的多线程

2.建立carte集群

3.使用Hadoop大数据服务

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

本章节介绍第二种设置PDI集群。

集群技术可以用来水平扩展转换,使它们能以并行的方式运行在多台服务器上。转换的工作可以平均分到不同的服务器上。一个集群模式包括一个主服务器和多个子服务器,主服务器作为集群的控制器。只有在集群模式中,才有主服务器和子服务器的概念。作为控制器的Carte服务器就是主服务器,其它的Carte服务器就是子服务器。

本节将介绍怎样配置和执行一个转换,让其运行在carte集群上。

文章建立carte01位主服务器,carte02和carte03为从服务器,这三台carte服务器都是在同一个物理机上配置的,大家也可以在不同物理机配置carte服务器。

1.Carte的配置

注意事项:需要在/pentaho/.kettle的目录下有repositories.xml 文件,文件里的repository连接信息需要填写在carte配置文件中。

carte-01-config.xml内容为:

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

 carte-02-config.xml 内容:

<slave_config>
	<masters>
		<slaveserver>
			<name>carte-01</name>
			<hostname>carte-server-01</hostname>
			<port>8080</port>
			<username>cluster</username>
			<password>cluster</password>
			<master>Y</master>
		</slaveserver>
	</masters>
	
	<report_to_masters>Y</report_to_masters> <!--配置向master汇报-->
	<slaveserver>
		<name>carte-02</name>
		<hostname>carte-server-01</hostname>
		<port>8081</port>
		<username>cluster</username>
		<password>cluster</password>
		<master>N</master>
		<get_properties_from_master>carte-01</get_properties_from_master> 
		<override_existing_properties>Y</override_existing_properties>
	</slaveserver>
	
	<repository>
		<name>pentaho-repo</name>
		<username>admin</username>
		<password>password</password>
	</repository>
	<max_log_lines>10000</max_log_lines> 
	<max_log_timeout_minutes>2880</max_log_timeout_minutes> 
	<object_timeout_minutes>240</object_timeout_minutes>
</slave_config>
           

carte-03-config.xml 内容同carte-02-config.xml。

2.Carte的启动

由于配置了carte的master主服务器,所以只有carte 的主服务器启动完成后,才能启动其他从服务器。

在PDI的安装目录data-integration下建立了Carte的一键启动脚本auto_start_carte.sh

#!/bin/bash
DIR_REL=`dirname $0`
cd $DIR_REL
DIR=`pwd`
echo "path is :$DIR"
sh $DIR/carte.sh  carte-01-config.xml >$DIR/carte_log/carte01.log 2>&1 &
sleep 20
sh $DIR/carte.sh  carte-02-config.xml >$DIR/carte_log/carte02.log 2>&1 &
sh $DIR/carte.sh  carte-03-config.xml >$DIR/carte_log/carte03.log 2>&1 &
echo "carte have been started!"
           

3.Carte的停止

方法1:通过URL命令停止

http://10.XX:8080/kettle/stopCarte

方法2:使用脚本

./carte.sh <ip_addr> <port> -s –u <username> –p <password>

示例:./carte.sh 10.XX.105 8081 -s -u cluster -p cluster

方法3:杀进程

通过 ps -ef | grep carte  命令查出carte的进程,

使用kill -9 XXX杀死对应进程即可。

4.Carte的使用

4.1配置子服务器

首先设置Master 的carte服务器:

名称:任意,这里设置为carte01

主机地址:10XX

端口号:8081,这里的端口号就是配置文件里设置的对应端口号

用户名/密码:cluster/cluster

如果是master则勾选“是主服务器”

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

 Carte02从服务器配置,并不需要勾选“是主服务器”

4.2配置run configuration执行服务器

右击“run configuration”新建执行服务器,如下图所示

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

测试执行转换/作业选择carte01执行器,执行正常,表明设置没有问题。

如果carte01执行器中没有选择“Send resources to this server”那么子作业或者子转换就不会执行,主作业失败!

4.3carte执行

建立作业如下,其中job1设置执行器是cart01执行,需要勾选“将作业执行结果发送到从服务器上”,任务才会正常执行。

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 
Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

5.Carte集群设置 

 在执行转换时,主服务器负责分发跟踪任务和收集结果总汇,从服务器负责具体的转换执行。在Kettle中,如果主服务器也宕机的话并不存在服务器(类似于redis、zookeeper等)重新选举的功能,也就是说一旦主服务器宕机,则Kettle集群就不能使用了。

只有在转换的界面中有Kettle集群schemas设置和使用。

5.1.配置子服务器

右击“Kettle集群schemas设置”,如下图所示增加carte集群节点,并设置主服务器和从服务器节点。Carte的集群部署分为静态模式和动态模式,这里选择为动态集群。只要carte01主服务器没问题,其他从服务器宕掉不影响任务的进行。

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

 如果没有选择“Dynamic cluster”就是静态集群,那么其中任一个carte服务器节点有问题,这个carte集群就不可用了。

5.2集群运行配置

选择slave server,并选择“Clustered”。

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

5.3步骤转换设置

在需要集群运行的步骤设置集群运行,右击该步骤选择“集群”,选择上一步中设置的集群“carte”

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

 如果是动态集群,则对应的转换步骤左上角会显示CxN,如果是静态集群,则对应的转换步骤左上角会显示Cx2这样样式。

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 
Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

5.4Carte集群执行

 对于转换选择设置好的cluster执行

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

执行正常,如下图所示:

caret01:

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

 carte02:

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

 carte03:​​​​​​​

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

作业中的子转换选择cluster执行,测试转换执行也正常:

Kettle/Pentaho的Carte集群配置和使用1.Carte的配置2.Carte的启动3.Carte的停止4.Carte的使用5.Carte集群设置 

5.5Carte集群和carte执行器混合使用 

 测试运行正常。

参考文章:

Kettle — 集群使用_永远不会懂-CSDN博客_kettle集群

Kettle构建Hadoop ETL实践(十):并行、集群与分区_wzy0623的专栏-CSDN博客

继续阅读