首页 > 其他 > 详细

spark on yarn container分配极端倾斜

时间:2020-01-21 11:15:42      阅读:126      评论:0      收藏:0      [点我收藏+]

环境:CDH5.13.3  spark2.3

在提交任务之后,发现executor运行少量几台nodemanager,而其他nodemanager没有executor分配。

通过spark-shell模拟如下:

第一次尝试分配6个exeutor,具体如下

spark2-shell --driver-memory 1G --executor-memory 2G --num-executors 6 --executor-cores 3

 

技术分享图片

第二次尝试分配20个executor,具体如下

spark2-shell --driver-memory 1G --executor-memory 2G --num-executors 20 --executor-cores 3

 

 

 

技术分享图片

 

环境调度策略为公平调度,即FairScheduler,而这种情况是由公平调度中的一个参数有关:

<property>
<name>yarn.scheduler.fair.assignmultiple</name>
<value>true</value>
<discription>whether to allow multiple container assignments in one heratbeat defaults to false</discription>
</property>
在一次心跳请求中,是否分配多个container,CDH5.13.3默认设置为true。原生hadoop默认是false

<property>
<name>yarn.scheduler.fair.max.assign</name>
<value>-1</value>
</property>
如果上面设置的允许一次分配多个container,那么最多分配多少个,默认无限制。根据实际资源情况


将yarn.scheduler.fair.assignmultiple设置为false,再测试如下:

spark2-shell --driver-memory 1G --executor-memory 2G --num-executors 6 --executor-cores 3

 

技术分享图片

 

如果在生产环境下,spark任务的executor数量和内存都相对要高很多,所以这种情况会相对有所缓解,具体根据实际情况确定是否需要调整。

spark on yarn container分配极端倾斜

原文:https://www.cnblogs.com/zz-ksw/p/12220795.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!