【问题标题】:Why does Spark shuffle store intermediate data on disk?为什么 Spark shuffle 将中间数据存储在磁盘上?
【发布时间】:2014-12-04 21:13:17
【问题描述】:

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

是否正在做一些工作将其写入内存?

【问题讨论】:

  • 可以将“spark.shuffle.spill”设置为false,将中间数据写入内存。
  • 为什么这不是默认选项?

标签: apache-spark shuffle


【解决方案1】:

Spark 将随机播放操作的中间数据存储在磁盘上,作为其“幕后”优化的一部分。当 spark 必须重新计算 RDD 图的一部分时,如果 RDD 已经存在,它可能能够截断 RDD 图的沿袭,这是早期 shuffle 的副作用。即使 RDD 没有被缓存或显式持久化,也会发生这种情况。

此答案的来源是 Karau、Konwinski、Wendell 和 Zaharia 的 O'Reilly 书籍 Learning Spark。第 8 章:调整和调试 Spark。部分:执行的组成部分:作业、任务和阶段。

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多