Spark:MEMORY_ONLY_SER_2 - 奇怪的记忆行为

时间:2015-12-06 05:13:03

标签: scala memory apache-spark persist

我正在使用storageLevel = MEMORY_ONLY_SER_2存储RDD,以防一个执行器丢失,还有另一个数据副本。

enter image description here

然后我发现了一些奇怪的东西:

  1. 当我使用storageLevel = MEMORY_ONLY_SER(1xReplicated)
  2. 时,2xReplicated RDD的内存大小似乎相同
  3. 即使我还有很多存储空间,缓存的分数也无法达到100%。
  4. 我是否正确理解storageLevel = MEMORY_ONLY_SER_2?与1xReplicated相比,为什么2xReplicated没有内存大小的两倍?谢谢!

1 个答案:

答案 0 :(得分:0)

我想也许你所有的缓存内存都会被使用,所以不管你使用了多少复制。

我不知道为每个执行器分配了多少内存,如果分配了很多,可以增加 spark.storage.memoryFraction 的值,默认值为0.6。

如果您只是要验证MEMORY_ONLY_SER_2的成本是MEMORY_ONLY_SER的两倍,您可以使用一个小数据集。