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大數據與數據倉庫