SeaTunnel与DolphinScheduler集成全过程记录,亲测有效!

DolphinScheduler与SeaTunnel天然集成,支持通过Web UI直接配置SeaTunnel作业。
17772865565906f45544e1f15485d


点亮⭐️

https://github.com/apache/DolphinScheduler

作者 | 三线程序员

作者的话:“与 DolphinScheduler 集成有时间再写吧,欠的东西太多了。",现在项目快部署了,特此来还债。


1. 为什么要集成DolphinScheduler


我们已经验证了SeaTunnel的本地模式(local)可以正常跑ETL任务。但实际生产环境中,需要:

  • 定时调度:每日/每小时自动执行数据同步任务

  • 任务依赖:上游数据准备就绪后再触发下游任务

  • 告警通知:任务失败时发送通知(三线城市还没这个岗位,炸了再说)

  • 运维管理:可视化查看任务状态、历史执行记录

其实我主要还是懒得打命令行,这个在页面上就能手动执行,查看日志还是挺方便的,慢就慢点吧,正好多喝杯水。

DolphinScheduler与SeaTunnel天然集成,支持通过Web UI直接配置SeaTunnel作业,实现上述所有需求。

2. 部署环境说明


177728655868868590019bf745ee6

架构思路:DS负责调度和流程编排,SeaTunnel负责实际的数据读写。

3. DolphinScheduler对接

SeaTunnel的方式


3.1 方式一:使用Shell节点调用SeaTunnel命令行

这是最直接的方式,shell大法适合大部分场景。

步骤:

  1. 1.在DolphinScheduler的运行节点上部署SeaTunnel客户端(不需要Api服务)

  2. 2.在Shell节点中调用seatunnel.sh脚本




#!/bin/bashcd /opt/apache-seatunnel-2.3.12/bin./seatunnel.sh --config /data/jobs/mysql_to_doris.conf -m local

优点:配置简单,兼容性好;还能不暴露数据库敏感信息。

缺点:配置文件要提前调试好,修改时要去服务器上vim改(想想都头大)

3.2 方式二:通过SeaTunnel Api或SeaTunnel web提交任务

如果需要更精细的控制(如任务取消、状态查询),可以使用Api方式。

  • 我没试过我觉得太麻烦了.....

3.3 方式三:官网推荐SeaTunnel节点

DolphinScheduler的SeaTunnel的节点,选择Zeta的引擎执行。发现其不支持IP设置,DolphinScheduler需要和SeaTunnel绑定在相同的机器上(即要求SeaTunnel和DolphinScheduler需要部署在同一个机器中)。

image-20260416161054042

ScreenShot_2026-04-16_161633_124

所以需要在DolphinScheduler安装的机器上再安装一遍SeaTunnel,而且是每一个机器,因为DolphinScheduler是集群的任务不定会分配到哪个节点上。这里为了快速验证,直接把local模式的SeaTunnel复制到DolphinScheduler的各个节点,并未重新安装部署集群版本。

  • 3.3.1 使用默认配置验证

使用默认的配置参数,提供的是一个测试数据生成输出到控制台上的脚本:

ScreenShot_2026-04-16_161902_244

报错:


行5: /bin/seatunnel.sh: 没有那个文件或目录。

即集成失败,DolphinScheduler无法调用seatunnel。分析原因,是环境变量未配置导致找不到对应目录。

前两天正好看了DolphinScheduler官网发了一个集成的文档,和网上的集成方案看了一下,都是需要配置环境变量。

  • 3.3.2 修改DolphinScheduler环境配置

在DolphinScheduler的主安装节点,服务器的安装目录/opt/dolphinscheduler/bin/env下修改文件dolphinscheduler_env.sh

修改 export SEATUNNEL_HOME=${SEATUNNEL_HOME:-/opt/seatunnel}其中/opt/seatunnel为在海豚机器上安装的目录。

重启集群,官方文档上说是会自动把整个集群的Work-Server和Master-Server的环境配置自动修改。如果不管用,就手动去各个Mastet/Work等节点的Conf目录里改一下,省得麻烦。

注意,最终是要保证整个DolphinScheduler集群下的所有Work-Server、Master-Server、api-server的环境都配置上SeaTunnel的安装目录。

  • 3.3.3 再次验证集成

直接重跑验证任务实例即可,看到小对勾就OK了。

查看日志,有打印图标!集成成功。同步信息也有。

如果需要统计读写数量就可以从打印的日志中获取了。

  • 3.3.4 集群下如何查看DolphinScheduler具体日志执行内容

通过DolphinScheduler任务实例ID 203971,查询对应海豚数据表。




SELECT * FROMt_ds_task_instancewhere id=203971

对应节点运行机器IP和目录位置均在数据库中记录。但日志中的内容需要扫描对应的日志文件获取了。并没有在数据库中直接记录下来。

4. DolphinScheduler时区设置问题


定时调度时间不对可老麻烦了,经常的问题就是差8小时了。官网上有时区设置,底层好像是依赖java的一个设置参数,好像是xx_jackson_time_zone,默认是utf-8的......如果DolphinScheduler是用systemctl启动的话,好像直接设置java全局变量还不太行,改DolphinScheduler的配置文件是一把过的。

5. 总结一下


对于SeaTunnel在数据集成方面,主要是多种集成方案是亮点;在数据库之间集成其主要优势是自动建表。且支持建表模板;与DolphinScheduler集成是管理方面的优势,使用DolphinScheduler就可以将SeaTunnel的conf文件管理起来,提高调试便捷操作。




END




17772865622010af496dea826c2f1



用户案例


Cisco Webex天翼云Zoom网易邮箱 每日互动 惠生工程作业帮 博世智驾蔚来汽车 长城汽车集度长安汽车思科网讯食行生鲜联通医疗联想新网银行兴业证券唯品富邦消费金融 自如有赞伊利当贝大数据珍岛集团传智教育BigoYY直播 拈花云科太美医疗深圳某智能制造企业
17772865622010af496dea826c2f1



迁移实战


Azkaban Ooize(当贝迁移案例)airflow (有赞迁移案例)Air2phin(迁移工具)Airflow
17772865622010af496dea826c2f1



最新发版消息



Apache DolphinScheduler 3.4.1 发布,新增任务分发超时检测
17772865622010af496dea826c2f1



加入社区


关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org(向邮箱发送任意内容,收到邮件后回复同意订阅即可)
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

‍代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler

1777286563745e04f33ce91bb9eaa


1777286564328202f47b6464bafe7

你的好友小海豚拍了拍你

并请你帮她点一下“分享”