Spark是否将中间shuffle输出写入磁盘

时间:2016-12-03 16:18:25

标签: apache-spark rdd

我正在阅读Learning Spark,我不明白Spark的shuffle输出写入磁盘是什么意思。请参见第8章,调整和调试Spark,第148-149页:

  

Spark的内部调度程序可能会截断RDD图的谱系   如果现有RDD已经存在于集群内存中或已经存在   磁盘。第二种情况是这种截断可能发生在RDD时   已经实现了早期洗牌的副作用,甚至   如果它没有明确保持。这是一个引擎盖下   利用 Spark shuffle这一事实的优化   输出写入磁盘,并多次利用这一事实   重新计算RDD图的部分。

据我所知,存在不同的持久性策略,例如,默认的MEMORY_ONLY,这意味着中间结果永远不会持久保存到磁盘。

什么时候以及为什么shuffle会在磁盘上持续存在?如何通过进一步的计算重用它?

1 个答案:

答案 0 :(得分:5)

当需要随机播放的操作第一次评估(操作)并且无法禁用时,会发生这种情况

为什么

这是一项优化。洗牌是Spark中发生的昂贵事情之一。

如何通过进一步的计算重用它?

它会自动重复使用在同一RDD上执行的任何后续操作。