保姆级教程:零基础快速上手 Apache SeaTunnel(原 Waterdrop)

保姆级教程:零基础快速上手 Apache SeaTunnel(原 Waterdrop)

在大数据生态中,数据集成 (Data Integration)是连接数据源与数据仓库、湖仓、AI 平台的关键环节。面对 Kafka、MySQL、Hive、ClickHouse、Doris 等数十种异构系统,如何高效、稳定、低成本地实现数据同步?Apache SeaTunnel(原名 Waterdrop)正是为此而生!

SeaTunnel 是一个 分布式、高性能、易扩展的下一代数据集成平台 ,支持批处理与流处理,兼容 Flink 和 Spark 引擎,配置简单如写 YAML,部署轻量如单机脚本。本文将手把手带你从 安装 → 配置 → 运行 → 调试 全流程入门,真正做到"零基础也能跑通第一个任务"!


一、SeaTunnel 是什么?

  • 🌊 开源项目:Apache 软件基金会顶级项目(2023 年毕业),前身是滴滴开源的 Waterdrop。
  • 核心能力
    • 支持 100+ 数据源/目标(MySQL、PostgreSQL、Oracle、Kafka、Hive、Iceberg、S3、Doris、StarRocks 等)
    • 同时支持 批处理(Batch)流处理(Streaming)
    • 可选执行引擎:SparkFlink
  • 优势
    • 配置即代码(YAML/JSON),无需写 Java/Scala
    • 自动并行、断点续传、Exactly-Once 语义(部分引擎)
    • 资源占用低,单机可跑,集群可扩

二、环境准备(以本地单机为例)

1. 前提条件

  • JDK 8 或 JDK 11(推荐)
  • Linux / macOS / Windows(WSL 推荐)
  • (可选)已安装 Spark 或 Flink(SeaTunnel 也自带嵌入式模式)

2. 下载 SeaTunnel

复制代码
# 进入工作目录
mkdir -p ~/seatunnel && cd ~/seatunnel

# 下载最新稳定版(以 2.3.6 为例)
wget https://archive.apache.org/dist/seatunnel/2.3.6/apache-seatunnel-2.3.6-bin.tar.gz

# 解压
tar -zxvf apache-seatunnel-2.3.6-bin.tar.gz
cd apache-seatunnel-2.3.6

💡 提示:解压后目录结构:

复制代码
bin/          # 启动脚本
config/       # 默认配置
connectors/   # 所有连接器插件(关键!)
lib/          # 核心 JAR 包

三、编写第一个同步任务:MySQL → Console(打印到屏幕)

我们将模拟从 MySQL 读取数据,并输出到控制台(用于测试)。

步骤 1:准备测试数据(可选)

如果你没有 MySQL,可用内存数据源 FakeSource 快速测试:

复制代码
# config/fake_to_console.conf
env {
  execution.parallelism = 1
  job.mode = "BATCH"
}

source {
  FakeSource {
    result_table_name = "fake"
    row.num = 10
    schema = {
      fields {
        name = "string"
        age = "int"
      }
    }
  }
}

transform {
  # 可选:字段转换、过滤等
}

sink {
  Console {
    source_table_name = "fake"
  }
}

步骤 2:运行任务

复制代码
# 使用自带的 local 模式(无需 Spark/Flink 集群)
bin/seatunnel.sh --config config/fake_to_console.conf

✅ 成功输出类似:

复制代码
{"name":"name_0","age":0}
{"name":"name_1","age":1}
...

🎉 恭喜!你已成功运行第一个 SeaTunnel 任务!


四、实战:MySQL → Doris(真实场景)

假设你有:

  • MySQL 表 users(id, name, email)
  • Doris 表 ods_users(id, name, email)

1. 准备连接器插件

SeaTunnel 的连接器以插件形式存在。确保以下 JAR 存在于 connectors/ 目录:

  • connector-jdbc-mysql-*.jar
  • connector-doris-*.jar

如果没有,可从 官方 Release 页面 下载对应版本的 connector-bundle,或单独编译。

2. 编写配置文件 mysql_to_doris.conf

复制代码
env {
  job.mode = "BATCH"
  execution.parallelism = 2
}

source {
  Jdbc {
    driver = "com.mysql.cj.jdbc.Driver"
    url = "jdbc:mysql://localhost:3306/test_db"
    username = "root"
    password = "123456"
    query = "SELECT id, name, email FROM users"
    result_table_name = "mysql_data"
  }
}

sink {
  Doris {
    fenodes = "127.0.0.1:8030"
    username = "root"
    password = ""
    database = "example_db"
    table = "ods_users"
    source_table_name = "mysql_data"
    doris.config = {
      format = "json"
      read_json_by_line = true
    }
  }
}

🔍 注意:

  • 使用 HOCON 格式(兼容 JSON/YAML)
  • result_table_name 是中间表名,用于连接 source 和 sink

3. 运行任务

复制代码
bin/seatunnel.sh --config config/mysql_to_doris.conf

观察日志,若看到 Job Complete 即表示同步成功!


五、常见问题排查

问题 解决方案
ClassNotFoundException: com.mysql.cj.jdbc.Driver 将 MySQL JDBC 驱动 JAR 放入 lib/ 目录
连接 Doris 失败 检查 FE 的 HTTP 端口(默认 8030),非 MySQL 端口
任务卡住不动 查看 logs/ 下的日志文件,确认是否缺少插件
字段类型不匹配 transform 中使用 FieldMapperTypeConvert

六、进阶建议

  1. 使用 Flink 引擎 :生产环境推荐搭配 Flink 实现高吞吐流式同步。

    复制代码
    bin/seatunnel.sh --config xxx.conf --engine flink
  2. 监控与调度:结合 DolphinScheduler、Airflow 实现任务调度。

  3. 自定义插件:通过 SeaTunnel SDK 开发私有数据源。

  4. 性能调优 :调整 parallelism、批大小、JVM 参数等。


七、结语

Apache SeaTunnel 以 极简配置 + 强大生态 + 企业级能力,正在成为新一代数据集成的事实标准。无论你是数据工程师、ETL 开发者,还是架构师,掌握 SeaTunnel 都能极大提升数据管道的开发效率与稳定性。

相关推荐
yuluo_YX7 小时前
Reactive 编程 - Java Reactor
java·python·apache
人良爱编程1 天前
Hugo的Stack主题配置记录03-背景虚化-导航栏-Apache ECharts创建地图
前端·javascript·apache·echarts·css3·html5
JoySSLLian1 天前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
Apache Flink1 天前
Apache Flink Agents 0.2.0 发布公告
大数据·flink·apache
软件派2 天前
Apache SeaTunnel从入门到精通:企业级数据集成全流程解析
apache·seatunnel
倔强的石头1063 天前
边缘侧时序数据的选型指南:网络不稳定、数据不丢、回传可控——用 Apache IoTDB 设计可靠链路
网络·apache·iotdb
A-刘晨阳3 天前
2026年时序数据库选型指南:从大数据视角深度解析Apache IoTDB的技术优势与实践路径
大数据·apache·时序数据库
todoitbo3 天前
时序数据库选型指南:面向工业物联网的工程视角,以 Apache IoTDB 为例
物联网·apache·时序数据库·iotdb
枫叶丹44 天前
时序数据库选型指南:在大数据浪潮中把握未来,为何Apache IoTDB值得关注?
大数据·数据库·apache·时序数据库·iotdb