文章
问答
冒泡
DophinScheduler创建Seatunnel 任务自定义适配

起因:

ds创建seatunnel任务时,如果 engine = Flink,Run Mode默认为run,不能选择空值
0
此操作导致,在seatunnel调用Flink服务执行任务时,会在执行命令中默认拼接 --run-mode run,但是run-mode参数在多个flink版本(已测1.14 1.15 1.16 1.17)不支持,最后任务执行失败
Execute SeaTunnel Flink Job: ${FLINK_HOME}/bin/flink run --run-mode run -c org.apache.seatunnel.core.starter.flink.SeaTunnelFlink /opt/tools/seatunnel-incubating-2.3.1/starter/seatunnel-flink-15-starter.jar --config /tmp/dolphinscheduler/exec/process/tenant01/9109142885696/9218817470144_1/49/84/seatunnel_49_84.conf --name SeaTunnel
0
查看源码:
use-sea-tunnel.ts
SeatunnelFlinkTask.java
0
SeatunnelFlinkParameters.java
0

解决方案:

源码改造进行适配

1.页面新增none选项

0

2.后台新增None枚举

0
3.根据任务配置engine选项值判断是否装配默认参数
0
4.根据官方推荐,选择 3.1.5-release分支进行本地构建
./mvnw clean install -Prelease -Dmaven.test.skip -Dmaven.javadoc.skip -Dmaven.checkstyle.skip
5.构建成功后会在dist模块找到构建好的二进制压缩包
0
6.接下来二进制包进行解压部署,然后查看下seatunnel 任务创建页面,在Run Mode选项中显示有none
 
0
修改好配置后,重新执行原有工作流实
0
等待片刻,所有任务执行成功
0
 
我们在看下具体任务日志 ,在seatunnel命令中没发现run-mode参数,在flink命令中也没有run-mode参数
0
再从flink web dashboard查看flink job列表,Job Name也成功展示为代码改造中的名称,不再使用默认的seatunnel
0
 
flink
DophinScheduler
Seatunnel

关于作者

Miraclewcg
上善若水
获得点赞
文章被阅读