我们的提交命令如下: flink-1.12.0/bin/flink run -ynm chenTest -t yarn-per-job -yqu da_team -c com.test.FlinkTest Flink-1.0-SNAPSHOT.jar 通过参数指定application名称和yarn队列后,我们发现任务在yarn上的名称并不是-ynm定义的,并且提交的队列也不对。后面我们换成 -m 指定提交模式后就正常了。
-m 提交模式命令为:flink-1.12.0/bin/flink run -ynm chenTest -m yarn-cluster -yqu da_team -c com.test.FlinkTest Flink-1.0-SNAPSHOT.jar
然后我们对比发现,在通过 -t 指定提交模式时,client的log中没有打印传入的yarn相关参数,参考附件1,而通过 -m 提交的参考附件2。两个附件图片对比可以看到少了yarn.application.name和yarn.application.queue两项参数。
晚上我单步调试了下client侧的代码,发现在CliFrontend类中选择activeCommandLine时,返回的是GenericCLI,而 -m 提交时返回的是FlinkYarnSessionCli。然后在下面的getEffectiveConfiguration方法中调用Cli的toConfiguration方法时,GenericCLI的该方法中并未将yarn的配置加载进Configuration,所以最后client在启动AppMaster时取到的yarn相关参数都是空。参考附件3-5。 所以我想问下我们遇到的这个情况是正常的吗?还是说 -t 提交存在问题呢?*来自志愿者整理的flink邮件归档
flink1.12后所有的yarn相关的参数通过-D进行指定 例:-D yarn.application.name=xxx 替代以前的-ynm xxx 更多配置参考文档https://ci.apache.org/projects/flink/flink-docs-release-1.12/deployment/config.html#yarn*来自志愿者整理的flink邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。