2015-12-06 88 views
1

我正在使用storageLevel = MEMORY_ONLY_SER_2存儲RDD,以防一個執行程序丟失,還有另一個數據副本。Spark:MEMORY_ONLY_SER_2 - 奇怪的內存行爲

enter image description here

然後我發現一些奇怪的事情:

  1. 大小2xReplicated RDD的內存似乎是同樣的比較,當我用storageLevel = MEMORY_ONLY_SER(1xReplicated)
  2. 分數緩存即使我仍有大量存儲空間,仍無法達到100%。

我理解storageLevel = MEMORY_ONLY_SER_2是否正確?爲什麼2xReplicated沒有兩倍內存大小與1xReplicated相比?謝謝!

回答

0

我想也許你所有的緩存內存都被使用了,所以不管你使用了多少複製。

我不知道爲每個執行器分配了多少內存,如果分配了很多,可以增加值爲spark.storage.memoryFraction,默認值是0.6。

如果您只是驗證MEMORY_ONLY_SER_2是否會花費兩倍於MEMORY_ONLY_SER,您可以使用一個小數據集。