Spark同配置同数据量Executor执行速度差10-30倍的原因排查
Spark Stage执行性能差异排查问题(已排除数据倾斜、本地性及配置差异)
背景与现象
我正在分析一个耗时数分钟的Stage,它代表了应用中多个类似的高耗时Stage,这些Stage占用了大量整体运行时间,我的目标是优化其耗时。
观察到的关键现象:
- 任务时间分布初看类似数据倾斜,但查看对应指标后已排除该可能
- 重点对比Executor 2和4:两者读写数据量相近(Executor 2的数据量甚至略多),但执行时长差异极大
- 已确认一致条件:
- 两个Executor均以
node_local模式运行 - Worker节点由Google Cloud GKE提供,为相同类型(8核/64GB内存)
- Executor配置完全一致,基础设施及设置无任何差异
- 两个Executor均以
核心问题
排除数据倾斜、数据本地性、基础设施/配置差异后,还有哪些原因会导致同Stage中部分Executor的执行性能差异极大?尤其无法理解的是,在相同本地性和配置下,同一Stage里部分Executor的shuffle读/写耗时会明显更长。
参考材料
- 任务时间分布截图
- 排除数据倾斜的指标截图
- Executor 2和4的执行对比截图
- DAG图截图
- 截图3中剩余的Executor任务信息截图
使用版本
Spark 3.2.0
内容的提问来源于stack exchange,提问作者Blaisem
相关产品推荐
相关产品推荐

