SeaTunnel集群安装

本文详细描述了如何在多节点环境中部署SeaTunnel服务,包括Java环境设置、使用SCP进行文件传输、安装SeaTunnel及其依赖,配置Hazelcast、JVM、网络端口和日志管理,以及启动和测试集群的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境准备

服务器节点

节点名称

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

执行结果如下:

安装完毕。

### Apache SeaTunnel 2.3.8 安装指南 #### 下载地址 用户可以从官方提供的链接下载 Apache SeaTunnel 2.3.8 版本的二进制文件[^1]。具体下载页面位于以下地址: - **下载页**: https://seatunnel.apache.org/download/ #### 配置环境 在安装之前,需确保本地已正确配置 Java 环境以及必要的依赖项。Java 版本建议为 JDK 8 或更高版本。 #### 启动集群服务 完成解压后,可以通过 `seatunnel-cluster.sh` 脚本来启动 SeaTunnel 集群服务。以下是具体的命令示例[^3]: ```bash ./bin/seatunnel-cluster.sh start ``` 如果需要后台运行该进程,则可使用重定向操作符将其放入后台执行: ```bash nohup ./bin/seatunnel-cluster.sh start > sea_tunnel.log 2>&1 & ``` #### 停止集群服务 当不再需要运行 SeaTunnel 集群时,可通过如下脚本停止服务: ```bash ./bin/stop-seatunnel-cluster.sh ``` #### 使用 Docker 运行 (新增特性) 自 2.3.8 版本起,SeaTunnel 提供了官方支持的 Docker 镜像。这使得通过容器化部署变得更为便捷。以下是基于 Docker 的快速启动方式: 1. 拉取最新镜像: ```bash docker pull apache/seatunnel:2.3.8 ``` 2. 启动容器实例: ```bash docker run -d --name seatunnel-container -p 8081:8081 apache/seatunnel:2.3.8 ``` 上述命令会以后台模式启动 SeaTunnel 并映射默认 Web UI 到主机端口 8081 上。 --- ### 示例代码片段:MySQL 数据迁移至 MySQL 下面是一个简单的作业配置案例,展示如何利用 SeaTunnel 将数据从一个 MySQL 表迁移到另一个表中: ```yaml env { execution.parallelism = 1 } source { mysql { url = "jdbc:mysql://localhost:3306/source_db" username = "root" password = "password" table-name = ["table_source"] } } transform {} sink { mysql { url = "jdbc:mysql://localhost:3306/target_db" username = "root" password = "password" table-name = ["table_target"] } } ``` 此 YAML 文件定义了一个完整的 ETL 流程,其中包含源数据库连接参数、目标数据库连接参数及对应的数据表名称。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值