You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark阶段完成后计算是否结束?EMR写入S3过慢及阶段计算疑问

Spark任务最后写入S3阶段异常缓慢的疑问

我在Spark Application Master控制台实时查看任务时,能看到Spark遍历应用DAG过程中各阶段的完成情况——多数阶段执行都挺快,耗时从不到1秒到一两分钟不等。

(截图显示Spark各阶段执行列表,顶部的最终阶段为rdd.saveAsTextFile(path, classOf[GzipCodec]))

最终阶段是列表顶部的rdd.saveAsTextFile(path, classOf[GzipCodec]),这个阶段耗时特别长,和前面的阶段形成了鲜明对比。

我清楚Spark中的transformations会根据saveAsTextFile或者count这类actions生成的执行计划,执行0次、1次或者多次。任务推进过程中,我在应用管理器里看到的执行计划符合预期:部分阶段未出现,部分阶段重复出现。而且通过刷新页面能实时查看各阶段进度,各阶段的执行时间与输入数据规模大致匹配,因此我确定应用管理器展示的是实际transformations的执行进度,而非DAG的元活动。

现在我有两个核心疑问:

  • 既然各阶段都在执行实际的transformations,为什么最后这个从EMR写入S3的简单阶段会如此缓慢?
  • 若如同事所说,应用管理器展示的transformations阶段并未进行实际计算,那这些阶段消耗大量内存、CPU和时间的原因是什么?另外,Spark某一阶段显示已完成,是否代表对应的计算已全部完成?

内容的提问来源于stack exchange,提问作者Synesso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:57:24