为什么spark在shuffle期间会在磁盘上存储中间数据?我试图理解为什么它不能存储在内存中。写入内存有哪些挑战?
是否正在完成将其写入内存的工作?
答案 0 :(得分:5)
Spark将来自shuffle操作的中间数据存储在磁盘上,作为其引擎盖下的一部分"优化。当spark必须重新计算RDD图的一部分时,如果RDD已经存在作为早期shuffle的副作用,它可能能够截断RDD图的谱系。即使RDD未缓存或显式持久,也可能发生这种情况。
这个答案的来源是由Karau,Konwinski,Wendell& Co.撰写的O' Reilly书籍Learning Spark。扎哈里亚。第8章:调优和调试Spark。部分:执行组件:作业,任务和阶段。