|
目前可以实现的方案是:
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 去除这里的长度检测
就能实现我这边的需求了,不知道官方设置这些限制是出于什么考虑?
|