GitHub user StoneForests edited a discussion: flink 
yarn-application模式下,是否可以自定义每个flink任务的yarn.provided.lib.dirs

Java Version
java1.8

Scala Version
2.12

StreamPark Version
2.1.4

Flink Version
1.14.4

deploy mode
yarn-application

我参照streampark官网教程 
[原生flink作业参数](https://streampark.apache.org/docs/get-started/how-to-use/#setting-job-parameters)
 ,增加了两个动态参数
![image](https://github.com/apache/incubator-streampark/assets/5436513/2d772d5f-1460-470b-b930-bd84fa4d55a3)

任务运行起来后,第一个自定义参数生效了,但第二个参数(yarn.provided.lib.dirs)没有生效
![image](https://github.com/apache/incubator-streampark/assets/5436513/96b962dd-8c1c-4d74-a31e-32ca09bb3e0c)

我看了flink的日志,其中yarn.provided.lib.dirs出现了两次,均为streampark的默认值,而非streampark界面上自定义值: 
 

![image](https://github.com/apache/incubator-streampark/assets/5436513/c8a0d362-6c42-4d04-b382-1d0b14e16f51)

![image](https://github.com/apache/incubator-streampark/assets/5436513/0cf63037-9d8e-4f68-bb2f-5f675749b216)


想请教一下:在yarn-application模式下,是不是无法自定义yarn.provided.lib.dirs的值?
`hdfs:///streampark/flink/flink-1.14.4/lib;hdfs:///streampark/jars;hdfs:///streampark/plugins;hdfs:///streampark/workspace/<appid>/lib;hdfs://zq-dev-cluster/streampark/shims/flink-1.14
 `


如果真是如此,想问一下是否可以放开这个限制,允许yarn-application模式能在任务中指定加载其它目录中的依赖呢,具体场景如下:
1、我们开发了一个flink交换组件jar,该jar依赖了非常多第三方jar,如果合成一个shadejar得好几百MByte,所以我们把主jar和依赖jar拆开,把依赖jar预置到hdfs:///streampark/extlib;中。
2、在使用步骤1的主jar建立custom 
code任务时,允许用户指定yarn.provided.lib.dirs为hdfs:///streampark/extlib;
3、在使用其它的jar建立custom code任务r,或者flink 
sql任务时,不需要用户指定yarn.provided.lib.dirs,此时streampark会使用默认的yarn.provided.lib.dirs目录。

之所以我们没有把jar全部放到hdfs:///streampark/jars目录中,是为了避免在步骤3中的flink任务也去下载不必要的依赖,浪费网络和存储。

期待您的回复,谢谢!


GitHub link: https://github.com/apache/incubator-streampark/discussions/3743

----
This is an automatically sent email for dev@streampark.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@streampark.apache.org

Reply via email to