一、部署环境
JDK 1.8
Centos7
Kettle 8.2.0
主服务器
从服务器
二、搭建步骤
1、Linux下JDK环境搭建
-
检查是否有java环境
-
没有则搭建
-
查看各服务器之间时间是否同步
date ntpdate -u cn.pool.ntp.org
2、开启SSH免密登录
1.检查是否已安装SSH服务
ssh
2.没有则安装
3.检查是否启动SSH服务
service --status-all | grep ssh
4.没有则启动
5.在主机A上生成rsa密钥对
ssh-keygen -t rsa
6.将主机A的公钥添加到主机B的授权列表中。
ssh-copy-id 主机B用户名@主机Bip
7.免密登录,重启ssh服务
systemctl restart sshd
执行ssh 用户名@ip
3、查看所需端口是否被占用
netstat -ntlp
4、Linux下Kettle安装
官网下载后将压缩包传入服务器中进行解压
unzip xxxx
5、测试Kettle是否安装成功
cd data-integration
./kitchen.sh
报错信息如下:
#######################################################################
WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable
Consider installing the package with apt-get or yum.
e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
#######################################################################
解决方法:
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/matthewdva:/build:/EPEL:/el7/RHEL_7/x86_64/webkitgtk-2.4.9-1.el7.x86_64.rpm
yum install webkitgtk-2.4.9-1.el7.x86_64.rpm
6、Kettle集群环境配置
Carte的配置文件所在路径:/kettlle/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
一个集群账号密码文件:
kettle.pwd(密码可以修改)
1. 主服务器(carte-config-master-8080.xml)的配置内容为:
<slaveserver>
<name>master1</name>
<hostname>x.x.x.x</hostname>
<port>9090</port>
<master>Y</master>
</slaveserver>
name:指定Kettle主服务器名称
hostname:指定Kettle主服务器IP地址
port:指定Kettle主服务器端口号
master:指定是否是主服务器
伪分布式环境不需要配置该文件。
2. 子服务器(carte-config-8081.xml)的配置内容为: 其中masters中,name、hostname、port需要和carte-config-master-8080.xml中完全一致
<masters>
<slaveserver>
<name>master1</name>
<hostname>x.x.x.x</hostname>
<port>9090</port>
<username>cluster</username>
<password>cluster</password>
<master>Y</master>
</slaveserver>
</masters>
<report_to_masters>Y</report_to_masters>
<slaveserver>
<name>slave1</name>
<hostname>x.x.x.x</hostname>
<port>9091</port>
<username>cluster</username>
<password>cluster</password>
<master>N</master>
</slaveserver>
3. 其他从服务器依据以上配置,把主服务器中更改好的pwd文件夹分别覆盖其他服务器上的相应文件夹。拷贝文件至目标主机ip
scp -rp 待拷贝文件 用户名@目标主机ip:目标主机文件夹从目标主机拷贝文件至本机
或
scp -rp 用户名@目标主机ip:目标主机待拷贝文件 拷贝至本机的文件夹
7、集群carte服务开启
1. 启动主服务器
./carte.sh ip port
主服务器保持后台运行并将日志写入自定义文件
nohup /opt/Kettle/data-integration/./carte.sh 192.168.1.132 9090
>/opt/Kettle/data-integration/logs/out.log 2>&1 &
2. 启动从服务器
./carte.sh pwd/carte-config-8081.xml
从服务器保持后台运行并将日志写入自定义文件
nohup /opt/Kettle/data-integration/./carte.sh /opt/Kettle/data-integration/pwd/carte-config-8081.xml
>/opt/Kettle/data-integration/logs/out.log 2>&1 &
3. 服务开启成功
4. 浏览器访问 ip:port 账号密码默认 cluster 主从服务部署成功后Web登录如下:
8、在kettle图形界面中对集群进行设定
-
在本地打开kettle的图形化界面,新建一个test转换
-
在‘“转换”中选择“子服务器”,右键点击“新建”,在弹出对话框中把主从的服务器信息填入
-
在主对象树中,选择“Kettle集群schmas”,右键点击“新建”,在弹出对话框中把主从的服务器信息填入,然后点击“选择子服务器”,添加刚才新建的子服务器,然后确定。
-
在输出中右键选择“集群”,选择自己创建的“Schema”集群,点击“确定”
-
在“Run Configurations”中右键点击“新建”,填写测试参数
-
点击“运行”,选择自己创建的“测试集群”,最后点击“启动”即可
-
至此Kettle集群服务搭建完成。