Apache SeaTunnel详解与部署(最新版本2.3.13)

发布时间:2026/6/26 21:51:35
Apache SeaTunnel详解与部署(最新版本2.3.13) Apache SeaTunnel 2.3.13 发布时间为2026年3月通过网盘分享的文件2.3.13链接: https://pan.baidu.com/s/1h4Mho_li34obv1jqbC65xw 提取码: hqiu目录一、概述1.1、软件介绍1.2、解决问题​1.3、软件特性​1.4、使用用户1.5、产品对比二、架构2.1、运行流程2.2、连接器​2.3、引擎2.3.1、设计理念2.3.2、集群管理​2.3.3、核心功能​2.3.4、引擎对比三、软件部署-Docker部署四、Apache SeaTunnel发布包部署1.1、软件解压1.2、安装插件1.2.1 更换maven地址1.2.2 减少插件下载1.3、修改配置文件1.4、系统环境变量配置可以跳过此步骤在 SeaTunnel-Web部署环节操作1.5、测试1.6、启动服务五、 SeaTunnel-Web部署与使用废弃不通来人止步SeaTunnel Web1、下载解压2、配置环境变量3、 初始化数据库脚本4、修改 application.yml文件5、配置引擎配置信息6、配置版本号7、下载依赖包8、拷贝依赖包9、启动web服务10、检验一、概述1.1、软件介绍SeaTunnel是一个非常易用、超高性能的分布式数据集成平台支持实时海量数据同步。 每天可稳定高效同步数百亿数据已被近百家企业应用于生产。Apache SeaTunnel是中国开发者主导的项目也是Apache基金会中第一个诞生自中国的数据集成平台项目。SeaTunnel原名Waterdrop于2017年由乐视创建并于同年在GitHub上开源2021年10月改名为SeaTunnel2021年12月9日SeaTunnel进入Apache孵化2023年6月1日Apache SeaTunnel 毕业成为Apache 顶级项目2026年3月Apache SeaTunnel 2.3.13版本发布Seatunnel的中文是水滴来自中国当代科幻小说作家刘慈欣的《三体》系列它是三体人制造的宇宙探测器会反射几乎全部的电磁波表面绝对光滑温度处于绝对零度全部由被强互作用力紧密锁死的质子与中子构成无坚不摧。在末日之战中仅一个水滴就摧毁了人类太空武装力量近2千艘战舰官网地址Apache SeaTunnel | Apache SeaTunnel1.2、解决问题​SeaTunnel专注于数据集成和数据同步主要旨在解决数据集成领域的常见问题数据源多样常用数据源有数百种版本不兼容。 随着新技术的出现更多的数据源不断出现。 用户很难找到一个能够全面、快速支持这些数据源的工具。同步场景复杂数据同步需要支持离线全量同步、离线增量同步、CDC、实时同步、全库同步等多种同步场景。资源需求高现有的数据集成和数据同步工具往往需要大量的计算资源或JDBC连接资源来完成海量小表的实时同步。 这增加了企业的负担。缺乏质量和监控数据集成和同步过程经常会出现数据丢失或重复的情况。 同步过程缺乏监控无法直观了解任务过程中数据的真实情况。技术栈复杂企业使用的技术组件不同用户需要针对不同组件开发相应的同步程序来完成数据集成。管理和维护困难受限于底层技术组件Flink/Spark不同离线同步和实时同步往往需要分开开发和管理增加了管理和维护的难度。1.3、软件特性​丰富且可扩展的ConnectorSeaTunnel提供了不依赖于特定执行引擎的Connector API。 基于该API开发的ConnectorSource、Transform、Sink可以运行在很多不同的引擎上例如目前支持的SeaTunnel引擎Zeta、Flink、Spark等。Connector插件插件式设计让用户可以轻松开发自己的Connector并将其集成到SeaTunnel项目中。 目前SeaTunnel 支持超过 100 个连接器并且数量正在激增。批流集成基于SeaTunnel Connector API开发的Connector完美兼容离线同步、实时同步、全量同步、增量同步等场景。 它们大大降低了管理数据集成任务的难度。支持分布式快照算法保证数据一致性。多引擎支持SeaTunnel默认使用SeaTunnel引擎Zeta进行数据同步。 SeaTunnel还支持使用Flink或Spark作为Connector的执行引擎以适应企业现有的技术组件。 SeaTunnel 支持 Spark 和 Flink 的多个版本。JDBC复用、数据库日志多表解析SeaTunnel支持多表或全库同步解决了过度JDBC连接的问题 支持多表或全库日志读取解析解决了CDC多表同步场景下需要处理日志重复读取解析的问题。高吞吐量、低延迟SeaTunnel支持并行读写提供稳定可靠、高吞吐量、低延迟的数据同步能力。完善的实时监控SeaTunnel支持数据同步过程中每一步的详细监控信息让用户轻松了解同步任务读写的数据数量、数据大小、QPS等信息。支持两种作业开发方法编码和画布设计。 SeaTunnel Web 项目 GitHub - apache/seatunnel-web: SeaTunnel is a distributed, high-performance data integration platform for the synchronization and transformation of massive data (offline real-time). 提供作业、调度、运行和监控功能的可视化管理。1.4、使用用户SeaTunnel 拥有大量用户1.5、产品对比对比项Apache SeaTunnelDataXApache SqoopApache FlumeFlink CDC部署难度容易容易中等依赖于 Hadoop 生态系统容易中等依赖于 Hadoop 生态系统运行模式分布式也支持单机单机本身不是分布式框架依赖 Hadoop MR 实现分布式分布式也支持单机分布式也支持单机健壮的容错机制无中心化的高可用架构设计有完善的容错机制易受比如网络闪断、数据源不稳定等因素影响MR 模式重出错处理麻烦有一定的容错机制主从模式的架构设计容错粒度比较粗容易造成延时支持的数据源丰富度支持 MySQL、PostgreSQL、Oracle、SQLServer、Hive、S3、RedShift、HBase、Clickhouse等过 100 种数据源支持 MySQL、ODPS、PostgreSQL、Oracle、Hive 等 20 种数据源仅支持 MySQL、Oracle、DB2、Hive、HBase、S3 等几种数据源支持 Kafka、File、HTTP、Avro、HDFS、Hive、HBase等几种数据源支持 MySQL、PostgresSQL、MongoDB、SQLServer 等 10 种数据源内存资源占用少多多中等多数据库连接占用少(可以共享 JDBC 连接)多多多多(每个表需一个连接)自动建表支持不支持不支持不支持不支持整库同步支持不支持不支持不支持不支持(每个表需配置一次)断点续传支持不支持不支持不支持支持多引擎支持支持 SeaTunnel Zeta、Flink、Spark 3 个引擎选其一作为运行时只能运行在 DataX 自己引擎上自身无引擎需运行在 Hadoop MR 上任务启动速度非常慢支持 Flume 自身引擎只能运行在 Flink 上数据转换算子(Transform)支持 Copy、Filter、Replace、Split、SQL 、自定义 UDF 等算子支持补全过滤等算子可以 groovy 自定义算子只有列映射、数据类型转换和数据过滤基本算子只支持 Interceptor 方式简单转换操作支持 Filter、Null、SQL、自定义 UDF 等算子单机性能比 DataX 高 40% - 80%较好一般一般较好离线同步支持支持支持支持支持增量同步支持支持支持支持支持实时同步支持不支持不支持支持支持CDC同步支持不支持不支持不支持支持批流一体支持不支持不支持不支持支持精确一致性MySQL、Kafka、Hive、HDFS、File 等连接器支持不支持不支持不支持精确提供一定程度的一致性MySQL、PostgreSQL、Kakfa 等连接器支持可扩展性插件机制非常易扩展易扩展扩展性有限Sqoop主要用于将数据在Apache Hadoop和关系型数据库之间传输易扩展易扩展统计信息有有无有无Web UI正在实现中(拖拉拽即可完成)无无无无与调度系统集成度已经与 DolphinScheduler 集成后续也会支持其他调度系统不支持不支持不支持无社区非常活跃非常不活跃已经从 Apache 退役非常不活跃非常活跃二、架构2.1、运行流程SeaTunnel的运行流程如上图所示。用户配置作业信息并选择提交作业的执行引擎。Source Connector负责并行读取数据并将数据发送到下游Transform或直接发送到SinkSink将数据写入目的地。 值得注意的是Source、Transform 和 Sink 可以很容易地自行开发和扩展。SeaTunnel 是一个 EL(T) 数据集成平台。 因此在SeaTunnel中Transform只能用于对数据进行一些简单的转换例如将一列的数据转换为大写或小写更改列名或者将一列拆分为多列。SeaTunnel 使用的默认引擎是 SeaTunnel Engine。 如果您选择使用Flink或Spark引擎SeaTunnel会将Connector打包成Flink或Spark程序并提交给Flink或Spark运行。2.2、连接器​源连接器SeaTunnel 支持从各种关系、图形、NoSQL、文档和内存数据库读取数据 分布式文件系统例如HDFS 以及各种云存储解决方案例如S3和OSS。 我们还支持很多常见SaaS服务的数据读取。 您可以在[此处] 访问详细列表。 如果您愿意您可以开发自己的源连接器并将其轻松集成到 SeaTunnel 中。转换连接器如果源和接收器之间的架构不同您可以使用转换连接器更改从源读取的架构使其与接收器架构相同。Sink ConnectorSeaTunnel 支持将数据写入各种关系型、图形、NoSQL、文档和内存数据库 分布式文件系统例如HDFS 以及各种云存储解决方案例如S3和OSS。 我们还支持将数据写入许多常见的 SaaS 服务。 您可以在[此处]访问详细列表。 如果您愿意您可以开发自己的 Sink 连接器并轻松将其集成到 SeaTunnel 中。2.3、引擎2.3.1、设计理念SeaTunnel Engine 是一个由社区开发的用于数据同步场景的引擎作为 SeaTunnel 的默认引擎它支持高吞吐量、低延迟和强一致性的数据同步作业操作更快、更稳定、更节省资源且易于使用。SeaTunnel Engine 的整体设计遵循以下路径更快SeaTunnel Engine 的执行计划优化器旨在减少数据网络传输从而减少由于数据序列化和反序列化造成的整体同步性能损失使用户能够更快地完成数据同步操作。同时支持速度限制以合理速度同步数据。更稳定SeaTunnel Engine 使用 Pipeline 作为数据同步任务的最小粒度的检查点和容错。任务的失败只会影响其上游和下游任务避免了任务失败导致整个作业失败或回滚的情况。同时SeaTunnel Engine 还支持数据缓存用于源数据有存储时间限制的场景。当启用缓存时从源读取的数据将自动缓存然后由下游任务读取并写入目标。在这种情况下即使由于目标失败而无法写入数据也不会影响源的常规读取防止源数据过期被删除。节省空间SeaTunnel Engine 内部使用动态线程共享技术。在实时同步场景中对于每个表数据量很大但每个表数据量很小的表SeaTunnel Engine 将在共享线程中运行这些同步任务以减少不必要的线程创建并节省系统空间。在读取和写入数据方面SeaTunnel Engine 的设计目标是最小化 JDBC 连接的数量在 CDC 场景中SeaTunnel Engine 将重用日志读取和解析资源。简单易用SeaTunnel Engine 减少了对第三方服务的依赖并且可以独立于如 Zookeeper 和 HDFS 等大数据组件实现集群管理、快照存储和集群 HA 功能。这对于目前缺乏大数据平台的用户或者不愿意依赖大数据平台进行数据同步的用户来说非常有用。未来SeaTunnel Engine 将进一步优化其功能以支持离线批同步的全量同步和增量同步、实时同步和 CDC。2.3.2、集群管理​支持独立运行支持集群运行支持自治集群去中心化使用户无需为 SeaTunnel Engine 集群指定主节点因为它可以在运行过程中自行选择主节点并且在主节点失败时自动选择新的主节点自治集群节点发现和具有相同 cluster_name 的节点将自动形成集群。2.3.3、核心功能​支持在本地模式下运行作业作业完成后集群自动销毁支持在集群模式下运行作业单机或集群通过 SeaTunnel 客户端将作业提交给 SeaTunnel Engine 服务作业完成后服务继续运行并等待下一个作业提交支持离线批同步支持实时同步批流一体所有 SeaTunnel V2 Connector 均可在 SeaTunnel Engine 中运行支持分布式快照算法并支持与 SeaTunnel V2 Connector 的两阶段提交确保数据只执行一次。支持在 Pipeline 级别调用作业以确保即使在资源有限的情况下也能启动支持在 Pipeline 级别对作业进行容错。任务失败只影响其所在 Pipeline只需要回滚 Pipeline 下的任务支持动态线程共享以实时同步大量小数据集。2.3.4、引擎对比Apache SeaTunne默认使用的是自研的SeaTunne Zeta引擎还支持Spark、Flink计算引擎三、软件部署-Docker部署参考使用Docker进行部署 | Apache SeaTunnel部署参考部署 | Apache SeaTunnel四、Apache SeaTunnel发布包部署相关软件下载通过网盘分享的文件2.3.13链接: https://pan.baidu.com/s/1h4Mho_li34obv1jqbC65xw 提取码: hqiu部署参考部署 | Apache SeaTunnel下载地址Apache SeaTunnelApache Download Mirrors或apache-seatunnel-2.3.13安装包下载-开源镜像站-阿里云1.1、软件解压将下载的压缩包上传到Linux的/usr/local/soft/路径下cd /usr/local/soft/ tar -zxvf apache-seatunnel-2.3.13-bin.tar.gz1.2、安装插件安装插件前需要进行Maven镜像地址更换与一些不用的插件不需要下载cd /usr/local/soft/apache-seatunnel-2.3.13/ sh bin/install-plugin.sh 2.3.13如果上述下载速度不慢则可以直接进入1.31.2.1 更换maven地址整个过程非常慢…从国外maven中央仓库下载东西可以使用maven的阿里云镜像setting文件地址/root/.m2/wrapper/dists/apache-maven-3.8.4-bin/52ccbt68d252mdldqsfsn03jlf/apache-maven-3.8.4/conf/换成阿里云镜像mirror idalimaven/id mirrorOfcentral/mirrorOf namealiyun maven/name urlhttps://maven.aliyun.com/repository/central/url /mirror mirror idaliyun-maven/id mirrorOf*/mirrorOf namealiyun maven/name urlhttp://maven.aliyun.com/nexus/content/groups/public/url /mirror更换后再下载速度很快1.2.2 减少插件下载默认插件全部下载如果自己用不到可以注释掉因为即便下载了也不用占用空间如果下载有需要可以再下载配置地址如下/usr/local/soft/apache-seatunnel-2.3.13/config/plugin_config# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the License); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an AS IS BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # # This mapping is used to resolve the Jar package name without version (or call artifactId) # # corresponding to the module in the user Config, helping SeaTunnel to load the correct Jar package. # Dont modify the delimiter -- , just select the plugin you need --connectors-v2-- #connector-amazondynamodb connector-assert #connector-cassandra connector-cdc-mysql connector-cdc-mongodb #connector-cdc-sqlserver connector-cdc-postgres #connector-cdc-oracle #connector-cdc-tidb connector-clickhouse connector-datahub connector-dingtalk #connector-doris connector-elasticsearch connector-email connector-file-ftp connector-file-hadoop connector-file-local connector-file-oss connector-file-jindo-oss #connector-file-s3 connector-file-sftp connector-file-obs #connector-google-sheets #connector-google-firestore connector-hive connector-http-base connector-http-feishu connector-http-gitlab connector-http-github connector-http-jira connector-http-klaviyo connector-http-lemlist connector-http-myhours connector-http-notion connector-http-onesignal connector-http-wechat connector-hudi connector-iceberg connector-influxdb connector-iotdb connector-jdbc connector-kafka connector-kudu #connector-maxcompute connector-mongodb connector-neo4j #connector-openmldb #connector-pulsar connector-rabbitmq connector-redis connector-druid #connector-s3-redshift #connector-sentry #connector-slack connector-socket #connector-starrocks #connector-tablestore #connector-selectdb-cloud connector-hbase #connector-amazonsqs #connector-easysearch #connector-paimon #connector-rocketmq #connector-tdengine connector-web3j #connector-milvus #connector-activemq #connector-sls #connector-qdrant #connector-typesense #connector-cdc-opengauss连接器下载到/usr/local/soft/apache-seatunnel-2.3.13/connectors/可以单独保存以后安装就不用再下载上述内容也可以直接上传地址如下通过网盘分享的文件2.3.13链接: https://pan.baidu.com/s/1h4Mho_li34obv1jqbC65xw 提取码: hqiu1.3、修改配置文件vi /usr/local/soft/apache-seatunnel-2.3.13/config/seatunnel-env.sh修改Spark路径# Home directory of spark distribution. SPARK_HOME${SPARK_HOME:-/usr/local/soft/spark-4.1.2-bin-hadoop3}1.4、系统环境变量配置可以跳过此步骤在 SeaTunnel-Web部署环节操作vi /etc/profile添加以下配置export SEATUNNEL_HOME/usr/local/soft/apache-seatunnel-2.3.13 export PATH$PATH:$SEATUNNEL_HOME/binsource /etc/profile1.5、测试cd /usr/local/soft/apache-seatunnel-2.3.13/ ./bin/seatunnel.sh --config ./config/v2.batch.config.template -m local1.6、启动服务用于web端连接cd /usr/local/soft/apache-seatunnel-2.3.13/bin/ seatunnel-cluster.sh或cd /usr/local/soft/apache-seatunnel-2.3.13/bin/ nohup sh seatunnel-cluster.sh 21 关闭stop-seatunnel-cluster.sh五、 SeaTunnel-Web部署与使用废弃不通来人止步SeaTunnel WebWARNING: SeaTunnel Web is an experimental project and is not yet production ready.警告SeaTunnel Web 属于试验性项目暂不建议投入生产环境使用。重要警告以下步骤部署完没有走通官方没有再维护所以不要继续操作了1、下载解压下载地址Apache SeaTunnel或apache-seatunnel-seatunnel-web-1.0.2安装包下载_开源镜像站-阿里云cd /usr/local/soft/ tar -zxvf apache-seatunnel-web-1.0.2-bin.tar.gz2、配置环境变量vim /etc/profile添加export SEATUNNEL_HOME/usr/local/soft/apache-seatunnel-2.3.13 export SEATUNNEL_WEB_HOME/usr/local/soft/apache-seatunnel-web-1.0.2-bin export PATH$PATH:$SEATUNNEL_HOME/bin:$SEATUNNEL_WEB_HOME/bin使环境变量生效source /etc/profile3、 初始化数据库脚本前置条件是已经部署好MySQL8数据库,可参考Linux环境下部署MySQL8数据库_linux部署mysql8-CSDN博客登录数据库mysql -u root -p输入密码后执行脚本source /usr/local/soft/apache-seatunnel-web-1.0.2-bin/script/seatunnel_server_mysql.sql4、修改application.yml文件vi /usr/local/soft/apache-seatunnel-web-1.0.2-bin/conf/application.yml修改数据库相关参数# # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the License); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an AS IS BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # server: port: 8801 spring: application: name: seatunnel jackson: date-format: yyyy-MM-dd HH:mm:ss datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://node11:3306/seatunnel?serverTimezoneUTCuseSSLfalseuseUnicodetruecharacterEncodingutf-8allowMultiQueriestrueallowPublicKeyRetrievaltrue username: root password: root mvc: pathmatch: matching-strategy: ant_path_matcher jwt: expireTime: 86400 # please add key when deploy secretKey: RrvTLM4y/J5HU1lB2NM0/9dVnlhpF5fuV9v1z2M9w algorithm: HS256 --- spring: config: activate: on-profile: h2 sql: init: schema-locations: classpath*:script/seatunnel_server_h2.sql datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:seatunnel;MODEMySQL;DB_CLOSE_DELAY-1;DATABASE_TO_LOWERtrue username: sa password: sa h2: console: enabled: true path: /h2 settings: trace: false web-allow-others: false注意事项url: jdbc:mysql://node11:3306/seatunnel?serverTimezoneUTCuseSSLfalseuseUnicodetruecharacterEncodingutf-8allowMultiQueriestrueallowPublicKeyRetrievaltrue添加secretkey代码生成dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-api/artifactId version0.11.2/version /dependency dependency groupIdio.jsonwebtoken/groupId artifactIdjjwt-impl/artifactId version0.11.2/version /dependencyimport io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.security.Keys; import javax.crypto.SecretKey; import java.util.Base64; public class App { public static void main(String[] args) { SecretKey secretKey Keys.secretKeyFor(SignatureAlgorithm.HS256); String key Base64.getEncoder().encodeToString(secretKey.getEncoded()); System.out.println(key); } }运行结果RrvTLM4y/J5HU1lB2NM0/9dVnlhpF5fuV9v1z2M9w5、配置引擎配置信息cp /usr/local/soft/apache-seatunnel-2.3.13/config/hazelcast-client.yaml /usr/local/soft/apache-seatunnel-web-1.0.2-bin/conf/ cp /usr/local/soft/apache-seatunnel-2.3.13/connectors/plugin-mapping.properties /usr/local/soft/apache-seatunnel-web-1.0.2-bin/conf/6、配置版本号vi /usr/local/soft/apache-seatunnel-web-1.0.2-bin/bin/download_datasource.sh修改版本号为1.0.27、下载依赖包cd /usr/local/soft/apache-seatunnel-web-1.0.2-bin/bin/ download_datasource.sh下载后的包在/usr/local/soft/apache-seatunnel-web-1.0.2-bin/datasource/文件夹中8、拷贝依赖包将/usr/local/soft/apache-seatunnel-web-1.0.2-bin/datasource/所有文件拷贝到/usr/local/soft/apache-seatunnel-web-1.0.2-bin/libs/文件夹下cp /usr/local/soft/apache-seatunnel-web-1.0.2-bin/datasource/* /usr/local/soft/apache-seatunnel-web-1.0.2-bin/libs/ cp /usr/local/soft/apache-seatunnel-web-1.0.2-bin/datasource/* /usr/local/soft/apache-seatunnel-2.3.13/lib/配置MySQL依赖包同时将准备好的mysql-connector-java-8.0.15.jar添加到/usr/local/soft/apache-seatunnel-web-1.0.2-bin/libs/文件夹中https://mvnrepository.com/artifact/org.apache.seatunnel/seatunnel-api/2.3.13/usr/local/soft/apache-seatunnel-web-1.0.2-bin/libs/9、启动web服务seatunnel-backend-daemon.sh start10、检验jps报错FAQ:1、解决方案url: jdbc:mysql://node11:3306/seatunnel?serverTimezoneUTCuseSSLfalseuseUnicodetruecharacterEncodingutf-8allowMultiQueriestrueallowPublicKeyRetrievaltrue