为什么Spark shuffle将中间数据存储在磁盘上?

时间:2014-12-04 21:13:18

标签: apache-spark shuffle

为什么spark在shuffle期间会在磁盘上存储中间数据?我试图理解为什么它不能存储在内存中。写入内存有哪些挑战?

是否正在完成将其写入内存的工作?

1 个答案:

答案 0 :(得分:5)

Spark将来自shuffle操作的中间数据存储在磁盘上,作为其引擎盖下的一部分"优化。当spark必须重新计算RDD图的一部分时,如果RDD已经存在作为早期shuffle的副作用,它可能能够截断RDD图的谱系。即使RDD未缓存或显式持久,也可能发生这种情况。

这个答案的来源是由Karau,Konwinski,Wendell& Co.撰写的O' Reilly书籍Learning Spark。扎哈里亚。第8章:调优和调试Spark。部分:执行组件:作业,任务和阶段。