业务场景:
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指定较小数值
在CDH 6.3.0环境中,使用Flink 1.12.1进行Yarn调度时,发现TaskManager主要集中在少数几个节点上,导致负载不均衡。分析了Yarn的公平调度器配置yarn.scheduler.fair.assignmultiple(默认为true,允许节点分配多个container)和yarn.scheduler.fair.max.assign(默认为-1,不限制节点分配的container数)。提出两种解决方案:一是禁用在同一节点分配多个container;二是限制每个节点的最大分配container数,以实现更均匀的资源利用。
867

被折叠的 条评论
为什么被折叠?



