如何在Flink run-application 模式中自定义提交第三方jar包

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

如何在Flink run-application 模式中自定义提交第三方jar包

xingoo
目前可以实现的方案是:
1 打包成fat jar,把第三方的jar加进去
2 放到FLINK_HOME/lib下,自动上传到yarn
但是我们目前在做一个开发平台,无法使用fat jar模式;如果放在lib下又做不到按需加载;也无法提前上传至hdfs(流程不允许)。

查看源码发现,application模式会覆盖掉pipeline.jars,而且在YarnClusterDescriptor的deployApplicationCluster中,强制检测:Preconditions.checkArgument(pipelineJars.size() == 1, "Should only have one jar")。

不知道这是出于什么考虑,如果修改源码:

1 不覆盖用户flink脚本中自定义的pipeline.jars,而是追加模式
2 去除这里的长度检测

就能实现我这边的需求了,不知道官方设置这些限制是出于什么考虑?