一、背景
首先需要掌握 Spark DAG、stage、task的相关概念
Spark的job、stage和task的机制论述 - 知乎
task数量和rdd 分区数相关
running task数=executors * cores(如果running task 没有达到乘积最大,一般是队列资源不足)
二、任务慢的原因分析
找到运行时间比较长的stage
再进去看里面的task
可以看到某个task 读取的数据量明显比其他task 较大。
如果是sql 任务进入到 SQL 页面看到 对应的执行卡在哪里,然后分析,如下图是hash id、actor_name,可以看到是group by 数据有倾斜。
group by 数据倾斜问题,可以参考hive group by 数据倾斜问题同样处理思路。
版权归原作者 诸葛子房_ 所有, 如有侵权,请联系我们删除。