Flink任务提交给Yarn,为何web界面只有一个Taskmanager?

使用yarn-session在yarn集群上启动一个flink集群:

./yarn-session.sh -n 4 -jm 1024 -tm 1024 -s 2

此时,在master:8088的界面看到多了一个application,但是running containers数量为1;【为何不是分配的4】

然后,继续在yarn上提交flink的jar包运行:

./flink run -p 4 /home/hadoop/proj/wordcount.jar

点开8088界面的Tracking UI中的ApplicationMaster,可以看到Flink的web界面,运行一个wordcount时的taskmanager数量为1;【为何不是分配的4】

答:

(1)https://blog.csdn.net/xianpanjia4616/article/details/83958673

(2)https://ci.apache.org/projects/flink/flink-docs-release-1.6/ops/config.html#jobmanager

官网的图好像不是上面(1)中描述的那个意思,实验了一下,发现不在yarn上运行flink直接start-cluster.sh时,是先分配完slot再开另一个taskmanager。

测试:

启动yarn-session后,同时运行多个flink run进行wordcount,发现flink的web界面出现陆续出现多个taskmanager,但是可以超过我们yarn-session语句中设定的4,查看wordcount的operatorchain的host,发现分布在不同的几台机子上。

问:为何taskmanager会超过设定的数量?运行一个wordcount时,每个taskmanager的slot设置为4,当并行度设置为6时,还是都在一个host上运行,并没有新的taskmanager,为何?

答:以上问题,究其原因都是yarn-session并没有起到预分配taskmanager的作用,那么到底是哪里出错了呢?

发布了20 篇原创文章 · 获赞 1 · 访问量 4911

猜你喜欢

转载自blog.csdn.net/piaoken5588/article/details/88633495