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

Ven*_*kam 7 shuffle apache-spark

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

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

小智 5

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

这个答案的来源是O'Reilly的书籍,由Karau,Konwinski,Wendell和Zaharia撰写的"学习星火".第8章:调优和调试Spark.部分:执行组件:作业,任务和阶段.