cdh中yarn调度spark,container资源倾斜,container集中于一台或几台机器

cdh 6.0.1版本中,提交spark任务,发现yarn分配的container集中于几台节点,其它节点没有分配。这显然会导致个别机器负载过高,从而影响集群整个性能。

原因

yarn.scheduler.fair.assignmultiple: Whether to allow multiple container assignments in one heartbeat. Defaults to false.

这个配置项决定了是否在一次心跳分配请求中分配多个containe,在CDH中默认为true,在yarn原生中默认为false的。

yarn.scheduler.fair.dynamic.max.assign为在assignmultipletrue时,是否动态决定一次分配多少,如果为true则一次最多分配该节点未分配资源的一半。

解决办法

设置cdh的配置yarn.scheduler.fair.assignmultiplefalse,重启cdh生效,这样分配的资源就不会发生倾斜了,均匀分配到多个节点中。






作者:柯广的网络日志

微信公众号:Java大数据与数据仓库