cdh中yarn調(diào)度spark,container資源傾斜,container集中于一臺(tái)或幾臺(tái)機(jī)器

cdh 6.0.1版本中,提交spark任務(wù),發(fā)現(xiàn)yarn分配的container集中于幾臺(tái)節(jié)點(diǎn),其它節(jié)點(diǎn)沒(méi)有分配。這顯然會(huì)導(dǎo)致個(gè)別機(jī)器負(fù)載過(guò)高,從而影響集群整個(gè)性能。

原因

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

這個(gè)配置項(xiàng)決定了是否在一次心跳分配請(qǐng)求中分配多個(gè)containe,在CDH中默認(rèn)為true,在yarn原生中默認(rèn)為false的。

yarn.scheduler.fair.dynamic.max.assign為在assignmultipletrue時(shí),是否動(dòng)態(tài)決定一次分配多少,如果為true則一次最多分配該節(jié)點(diǎn)未分配資源的一半。

解決辦法

設(shè)置cdh的配置yarn.scheduler.fair.assignmultiplefalse,重啟cdh生效,這樣分配的資源就不會(huì)發(fā)生傾斜了,均勻分配到多個(gè)節(jié)點(diǎn)中。






作者:柯廣的網(wǎng)絡(luò)日志

微信公眾號(hào):Java大數(shù)據(jù)與數(shù)據(jù)倉(cāng)庫(kù)