Flinkflink-1.12 通过 -t 指定模式后无法指定yarn参数
Posted 九师兄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flinkflink-1.12 通过 -t 指定模式后无法指定yarn参数相关的知识,希望对你有一定的参考价值。
1.概述
转载:【Flink 纠错】flink-1.12 通过 -t 指定模式后无法指定yarn参数
1.1 问题描述
我们使用flink 1.12提交任务到yarn时,遇到个比较奇怪的问题,我们的提交命令如下:
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相关参数,而通过 -m
提交的则有。两个对比可以看到少了yarn.application.name和yarn.application.queue
两项参数。
晚上单步调试了下client侧的代码,发现在CliFrontend类中选择activeCommandLine
时,返回的是GenericCLI
,而 -m
提交时返回的是FlinkYarnSessionCli
。然后在下面的getEffectiveConfiguration
方法中调用Cli的toConfiguration
方法时,GenericCLI
的该方法中并未将yarn
的配置加载进Configuration
,所以最后client在启动AppMaster时取到的yarn相关参数都是空。
所以我想问下我们遇到的这个情况是正常的吗?还是说 -t 提交存在问题呢?
问题解答
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
————————————————
以上是关于Flinkflink-1.12 通过 -t 指定模式后无法指定yarn参数的主要内容,如果未能解决你的问题,请参考以下文章