业务场景:
Flink On Yarn任务启动
组件版本:
CDH:6.3.0
Flink:1.12.1
Hadoop:3.0.0
问题描述:
在使用FLink on Yarn调度过程中,发现taskmanager总是分配在集中的几个节点上,集群有11个节点,但每个任务启动,只用到两三个节点,导致这几台服务器负载过高,其他节点又比较空闲。
问题分析:
先介绍yarn的两个参数:
1、yarn.scheduler.fair.assignmultiple
2、yarn.scheduler.fair.max.assign
第一个参数代表是否在一个节点分配多个container,第二个参数代表在一个节点上一次性最多分配几个container。
CDH6.3.0中第一个参数默认为true,则意味着会在一个节点上分配多个container,则会有多个taskmanager。
第二个参数默认为-1,则意味着不限制,则会一次性分配较多container。
问题解决:
第一种:将yarn.scheduler.fair.assignmultiple改为false
第二种:yarn.scheduler.fair.assignmultiple为true,将yarn.scheduler.fair.max.assign指定较小数值