码迷,mamicode.com
首页 > 其他好文 > 详细

【原创】问题定位分享(19)spark task在executors上分布不均

时间:2018-12-20 22:15:01      阅读:363      评论:0      收藏:0      [点我收藏+]

标签:bar   其他   分享   集群   代码   通过   cal   进一步   代码解析   

最近提交一个spark应用之后发现执行非常慢,点开spark web ui之后发现卡在一个job的一个stage上,这个stage有100000个task,但是绝大部分task都分配到两个executor上,其他executor非常空闲,what happened?

查看spark task分配逻辑发现,有一个data locality即数据本地性的特性,详见 https://www.cnblogs.com/barneywill/p/10152497.html
即会按照locality级别的优先级来分配任务,数据本地性的优先级是:PROCESS_LOCAL, NODE_LOCAL, NO_PREF, RACK_LOCAL, ANY,并且在优先级之间还有一个delay,

spark.locality.wait

进一步查看目前集群的部署结构,发现datanode和nodemanager并没有部署到一块,所以spark在分配NODE_LOCAL类型task的时候,只有两个executor满足条件,所以绝大部分任务都分配到这两个executor上,通过设置

spark.locality.wait=0

解决问题;

【原创】问题定位分享(19)spark task在executors上分布不均

标签:bar   其他   分享   集群   代码   通过   cal   进一步   代码解析   

原文地址:https://www.cnblogs.com/barneywill/p/10152659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!