作者 * 三线程序员
"与 DolphinScheduler 集成有时间再写吧,欠的东西太多了。",现在项目快部署了,特此来还债。
我们已经验证了SeaTunnel的本地模式(local)可以正常跑ETL任务。但实际生产环境中,需要:
其实我主要还是懒得打命令行,这个在页面上就能手动执行,查看日志还是挺方便的,慢就慢点吧,正好多喝杯水。
DolphinScheduler与SeaTunnel天然集成,支持通过Web UI直接配置SeaTunnel作业,实现上述所有需求。
| 组件 | 版本 | 说明 |
|---|---|---|
| DolphinScheduler | 3.1.7+ | 调度平台 |
| SeaTunnel | 2.3.8+ /2.3.12 | 数据同步引擎 |
| Zeta引擎 | 内置 | SeaTunnel执行引擎 |
架构思路:DS负责调度和流程编排,SeaTunnel负责实际的数据读写。
这是最直接的方式,shell大法适合大部分场景。
步骤:
bash
#!/bin/bashcd /opt/apache-seatunnel-2.3.12/bin./seatunnel.sh --config /data/jobs/mysql_to_doris.conf -m local优点:配置简单,兼容性好;还能不暴露数据库敏感信息。
缺点:配置文件要提前调试好,修改时要去服务器上vim改(想想都头大)
如果需要更精细的控制(如任务取消、状态查询),可以使用Api方式。
DolphinScheduler的SeaTunnel的节点,选择Zeta的引擎执行。发现其不支持IP设置,DolphinScheduler需要和SeaTunnel绑定在相同的机器上(即要求SeaTunnel和DolphinScheduler需要部署在同一个机器中)。


所以需要在DolphinScheduler安装的机器上再安装一遍SeaTunnel,而且是每一个机器,因为DolphinScheduler是集群的任务不定会分配到哪个节点上。这里为了快速验证,直接把local模式的SeaTunnel复制到DolphinScheduler的各个节点,并未重新安装部署集群版本。
使用默认的配置参数,提供的是一个测试数据生成输出到控制台上的脚本:

报错:
行5: /bin/seatunnel.sh: 没有那个文件或目录。即集成失败,DolphinScheduler无法调用seatunnel。分析原因,是环境变量未配置导致找不到对应目录。
前两天正好看了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的安装目录。
直接重跑验证任务实例即可,看到小对勾就OK了。
查看日志,有打印图标!集成成功。同步信息也有。
如果需要统计读写数量就可以从打印的日志中获取了。
通过DolphinScheduler任务实例ID 203971,查询对应海豚数据表。
SELECT * FROM t_ds_task_instance where id=203971对应节点运行机器IP和目录位置均在数据库中记录。但日志中的内容需要扫描对应的日志文件获取了。并没有在数据库中直接记录下来。
定时调度时间不对可老麻烦了,经常的问题就是差8小时了。官网上有时区设置,底层好像是依赖java的一个设置参数,好像是xx_jackson_time_zone,默认是utf-8的......如果DolphinScheduler是用systemctl启动的话,好像直接设置java全局变量还不太行,改DolphinScheduler的配置文件是一把过的。
对于SeaTunnel在数据集成方面,主要是多种集成方案是亮点;在数据库之间集成其主要优势是自动建表。且支持建表模板;与DolphinScheduler集成是管理方面的优势,使用DolphinScheduler就可以将SeaTunnel的conf文件管理起来,提高调试便捷操作。
",基于 Cursor Agent 的流水线 AI CR 实践|得物技术
Excel 随机数总变?教你用 LAMBDA 打造可复现的种子随机数生成器
(六)以 WhaleStudio 三层开发管理框架为例,分享一套可落地的 DataOps 开发规范
【Excel 公式学习】告别“&”时代:TEXTJOIN 函数的万能用法 | 葡萄城技术团队
Excel 中 VSTACK 与 HSTACK 函数:纵向与横向合并数据的实用指南 | 葡萄城技术团队
小米路由器去广告规则(小米路由器去广告规则是什么)