环境准备
服务器节点
节点名称 | 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: 1
print-execution-info-interval: 10
slot-service:
dynamic-slot: true
checkpoint:
interval: 300000
timeout: 10000
max-concurrent: 1
tolerable-failure: 2
配置$SEATUNNEL_HOME/config/hazelcast.yaml文件
hazelcast:
cluster-name: seatunnel
network:
rest-api:
enabled: true
endpoint-groups:
CLUSTER_WRITE:
enabled: true
DATA:
enabled: true
join:
tcp-ip:
enabled: true
member-list:
- 192.168.1.205
- 192.168.1.208
- 192.168.1.209
port:
auto-increment: false
port: 5801
properties:
hazelcast.invocation.max.retry.count: 20
hazelcast.tcp.join.port.try.count: 30
hazelcast.logging.type: log4j2
hazelcast.operation.generic.thread.count: 50
配置$SEATUNNEL_HOME/config/hazelcast-client.yaml文件
hazelcast-client:
cluster-name: seatunnel
properties:
hazelcast.logging.type: log4j2
network:
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
执行结果如下:
安装完毕。