环境准备
服务器节点
节点名称 | IP |
bigdata1 | 192.168.1.250 |
bigdata4 | 192.168.1.251 |
bigdata5 | 192.168.1.252 |
Java环境(三个节点都需要)
- java1.8+
注意:在安装SeaTunnel集群时,最好是现在一个节点上将所有配置都修改完,之后通过SCP命令传到其它的节点上,更为方便些。使用scp命令要保证服务器之间SSH是可以通讯的。
scp命令示例
# 如下:将192.168.1.250服务器上/opt/seatunnel目录下的seatunnel安装包拷贝到192.168.1.251上
# 在192.168.1.250节点上执行,
scp /opt/seatunnel/apache-seatunnel-2.3.3-bin.tar.gz root@192.168.1.113:/opt/seatunnel/
安装(三个节点都要执行)
# 创建用于安装SeaTunnel的目录(三个节点都要执行)
mkdir -p /opt/seatunnel
# 将下载好的安装包拷贝到服务器上(三个节点都要执行)
apache-seatunnel-2.3.3-bin.tar.gz
# 安装SeaTunnel (三个节点都要执行)
tar -zxvf apache-seatunnel-2.3.3-bin.tar.gz
# 进入到SeaTunnel安装目录下(三个节点都要执行)
cd /opt/seatunnel/apache-seatunnel-2.3.3
下载连接器(三个节点都要执行)
# 进入到SeaTunnel安装目录下(三个节点都要执行)
cd /opt/seatunnel/apache-seatunnel-2.3.3
# 下载SeaTunnel 连接器(三个节点都要执行)
sh bin/install-plugin.sh
配置环境变量(三个节点都要执行)
# 配置环境变量,打开环境变量文件
vim /etc/profile# 在环境变量文件最后添加如下配置
export SEATUNNEL_HOME=/opt/seatunnel/apache-seatunnel-2.3.3
export PATH=$PATH:$SEATUNNEL_HOME/bin# 重新加载环境变量文件
source /etc/profile
配置SeaTunnel Engine JVM(三个节点都要执行)
# 进入到SeaTunnel安装目录下(三个节点都要执行)
cd /opt/seatunnel/apache-seatunnel-2.3.3
# 打开SeaTunnel 集群模式启动脚本文件
vim bin/seatunnel-cluster.sh
# 在文件首行添加JAVA虚拟机配置信息,如下图
JAVA_OPTS="-Xms2G -Xmx2G"
配置结果
创建连接器对应的目录和下载数据库连接驱动
创建jdbc连接器对应的目录
# 创建连接器对应的目录,用于存放数据库连接驱动
[root@localhost apache-seatunnel-2.3.3]# mkdir -p plugins/jdbc/lib/
# 将下载的数据库连接包上传到该目录下
[root@localhost lib]# pwd
/data/apache-seatunnel-2.3.3/plugins/jdbc/lib
[root@localhost lib]# ls
mysql-connector-java-8.0.28.jar ojdbc8.jar postgresql-42.6.0.jar
数据库连接包下载地址:
数据库 | 下载地址 |
mysql | Maven Repository: mysql » mysql-connector-java |
oracle | Maven Repository: com.oracle.database.jdbc » ojdbc8 |
postgresql | Maven Repository: org.postgresql » postgresql |
doris | Maven Repository: mysql » mysql-connector-java |
配置SeaTunnel(三个节点都要配置)
配置$SEATUNNEL_HOME/config/seatunnel.yaml文件
seatunnel:engine:backup-count: 1print-execution-info-interval: 10slot-service:dynamic-slot: truecheckpoint:interval: 300000timeout: 10000max-concurrent: 1tolerable-failure: 2
配置$SEATUNNEL_HOME/config/hazelcast.yaml文件
hazelcast:cluster-name: seatunnelnetwork:rest-api:enabled: trueendpoint-groups:CLUSTER_WRITE:enabled: trueDATA:enabled: truejoin:tcp-ip:enabled: truemember-list:- 192.168.1.205- 192.168.1.208- 192.168.1.209port:auto-increment: falseport: 5801properties:hazelcast.invocation.max.retry.count: 20hazelcast.tcp.join.port.try.count: 30hazelcast.logging.type: log4j2hazelcast.operation.generic.thread.count: 50
配置$SEATUNNEL_HOME/config/hazelcast-client.yaml文件
hazelcast-client:cluster-name: seatunnelproperties:hazelcast.logging.type: log4j2network:cluster-members:- 192.168.1.250:5801- 192.168.1.251:5801- 192.168.1.252:5801
创建日志存放目录
# 创建logs目录,如果存在忽略此步骤
mkdir -p $SEATUNNEL_HOME/logs
启动服务
# 在每一个节点上执行启动命令
nohup $SEATUNNEL_HOME/bin/seatunnel-cluster.sh 2>&1 &# 常用命令:停止集群
$SEATUNNEL_HOME/bin/stop-seatunnel-cluster.sh
配置开放端口号(两种方式)
#-------------iptables-----------------
#开打端口号开放配置文件
vim /etc/sysconfig/iptables
# 添加一行
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5801 -j ACCEPT
# 重启启动防火墙
systemctl restart iptables.service#------------firewall-------------------
# 依次执行下面命令
firewall-cmd --zone=public --add-port=5801/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
查看日志文件
tail -100f $SEATUNNEL_HOME/logs/seatunnel-engine-server.log
测试集群执行任务命令
sh $SEATUNNEL_HOME/bin/seatunnel.sh --config $SEATUNNEL_HOME/config/v2.batch.config.template
执行结果如下:
安装完毕。