我有一个hadoop集群和一台机器A.
我在机器A上,使用命令:
bin/yarn-session.sh -n 5 -jm 1g -tm 4g -s 4 -qu root.flink -nm fsql-cli > /dev/null 2>&1 &启动了一个yarn-session,其中,指定了队列root.flink和应用名fsql-cli。
但是,在yarn控制台中看到应用的名称和队列跟指定的名称大多数情况下不一致,如图:
启动后,应用名为:Flink session cluster,队列名为:root.default,显然使用了默认的应用名和队列。
flink环境如下:
flink版本:1.10.0 flink-conf.yaml配置: [fsql@10-42-63-116 conf]$ grep -v ^# flink-conf.yaml |grep -v ^$ jobmanager.rpc.address: localhost jobmanager.rpc.port: 6123 jobmanager.heap.size: 1024m taskmanager.memory.process.size: 2048m taskmanager.numberOfTaskSlots: 10 parallelism.default: 1 jobmanager.execution.failover-strategy: region那么,为什么我指定的队列名和应用名没有生效?
经Yang Wang大佬指点,检查HDFS上面staging目录($HOME/.flink/application_id)的flink-conf.yaml文件:
taskmanager.memory.process.size: 2048m yarn.flink-dist-jar: file:/opt/app/flink-1.10.0/lib/flink-dist_2.11-1.10.0.jar jobmanager.execution.failover-strategy: region high-availability.cluster-id: application_1588947789205_44382 jobmanager.rpc.address: localhost execution.target: yarn-per-job jobmanager.rpc.port: 6123 execution.attached: true internal.cluster.execution-mode: NORMAL parallelism.default: 1 taskmanager.numberOfTaskSlots: 10 $internal.yarn.log-config-file: /opt/app/flink-1.10.0/conf/log4j.properties jobmanager.heap.size: 1024m发现其中并没有提交命令中指定的-qu和-nm,分别对应参数yarn.application.queue和yarn.application.name,而且-tm也是默认值,并不是我参数中指定的值。
且同时发现“-n”参数在flink1.10中已经不再支持,我的命令是使用的之前老版本flink时的遗留脚本,flink升级后并没有检查原脚本参数,因此推测问题的原因是多余的“-n”参数,导致后面其他参数没有生效,均使用默认值启动了yarn-session。
把命令
bin/yarn-session.sh -n 5 -jm 1g -tm 4g -s 4 -qu root.flink -nm fsql-cli > /dev/null 2>&1 &中的“-n”参数去掉后重新执行。
然后发现,所有指定参数全部生效了。