2017-04-11 31 views
1

從火花配置頁面獲得的信息,我發現在從spark轉換爲Netty 1.5之後,堆棧緩衝區用於在洗牌和緩存塊傳輸期間減少gc。所以,我的問題是,在今天的火花中,洗牌階段在堆空間發生了什麼?在火花洗牌階段在堆空間上發生了什麼

回答

0

一般來說,Spark在中間數據存儲在磁盤操作的情況下進行'under-hood'優化。這個中間數據將在重新計算某些部分的情況下在同一血統(DAG)中重用DAG。即使RDD沒有被緩存或明確保留,也會發生這種情況。

spark.shuffle.file.buffer

在內存中的緩衝液對每個混洗文件輸出流的大小。 這些緩衝區可減少在 中創建中間隨機播放文件時進行的磁盤搜索和系統調用的數量。

more config info

之前2.x.x版本

For version 1.x.x

+0

你能給約約洗牌中間數據的詳細信息。還有一件事,我能否認爲在當前的火花(2.1.0)中,堆中的東西只會是計算工作中的中間數據? –

+0

Spark 2.x.x在存儲RDD /數據集的地方時略有不同。中間數據將保存在磁盤上,而不管我認爲的版本如何。您需要了解Spark Memory結構。我剛剛更新了我的答案。 – BDR

+0

非常感謝您的迴應。我希望指出的一件事是這張照片已經過時了。 spark 1.6後,spark.shuffle.memoryFraction參數將僅在傳統模式下有用。他們只是介紹我認爲的新內存結構。 –