问题描述
我可以将依赖 jar 移动到 hdfs,这样我就可以运行一个没有依赖 jar 的瘦 jar 吗? 运维工程师不允许我移动jar到flink lib文件夹。
解决方法
不确定您要解决什么问题,但如果您使用 yarn,您可能需要考虑应用程序模式部署:
./bin/flink run-application -t yarn-application \
-Dyarn.provided.lib.dirs="hdfs://myhdfs/remote-flink-dist-dir" \
"hdfs://myhdfs/jars/MyApplication.jar"
在这个例子中,MyApplication.jar
不是一个瘦 jar,但是作业提交是非常轻量级的,因为所需的 Flink jar 和应用程序 jar 是从 HDFS 中提取的,而不是由客户端运送到集群.此外,应用程序的 main()
方法是在 JobManager 上执行的。
应用模式是在 Flink 1.11 中引入的,在这篇博文中有详细描述:Application Deployment in Flink: Current State and the new Application Mode。