59 Spark效能優化之shuffle效能優化

2021-09-10 02:33:16 字數 1035 閱讀 7314

沒有開啟consolidation機制的效能低下的原理剖析.png

總結,沒有開啟consolidation機制的時候,shufflewtiter的效能,是比較低的,而且會影響到shuffle read的效能,而且效能也會比較低

因為shuffle map端建立的磁碟檔案太多了,導致shuffle writer要耗費大量的效能在磁碟檔案的建立,以及磁碟io上,對於shuffle read,也是一樣的,每個result task可能都需要通過磁碟io讀取多個檔案的資料,導致shuffle read 效能也會受到影響

但是,其實最主要的,還是shuffle write,因為要寫的磁碟檔案太多了

比如每個節點有100個shufflemaptask,下乙個stage,有100個result task,所以每個節點上的磁碟檔案數量,就是100 * 100 = 1萬個

開啟consolidation機制之後對磁碟io效能的提公升的原理.png

new sparkconf().set("spark.shuffle.consolidatefiles", "true")

spark.shuffle.consolidatefiles:是否開啟shuffle block file的合併,預設為false

spark.reducer.maxsizeinflight:reduce task的拉取快取,預設48m

spark.shuffle.file.buffer:map task的寫磁碟快取,預設32k

spark.shuffle.io.maxretries:拉取失敗的最大重試次數,預設3次

spark.shuffle.io.retrywait:拉取失敗的重試間隔,預設5s

spark.shuffle.memoryfraction:用於reduce端聚合的記憶體比例,預設0.2,超過比例就會溢位到磁碟上

Spark效能優化之Shuffle效能調優

一 shuffle效能調優 1,問題 shuffle output file lost?真正的原因是gc導致的!如果gc尤其是full gc產生通常會導致執行緒停止工作,這個時候下乙個stage的task在預設情況下就會嘗試重試來獲取資料,一般重試3次每次重試的時間為5s,也就是說預設情況下15s內...

spark效能優化

熟悉spark核心之後,深刻體會到了spark開發中存在著大量細節左右著計算效能。趁著剛看過大概的流程,先基於目前的感受和相關資料,總結一下可能存在優化空間的地方。spark優化其實就是將不必要的開銷能省就省。建立rdd是昂貴的,從磁碟讀取rdd也是昂貴的,需要大量的io開銷,shuffle是與基於...

spark的效能優化

因為之前在tesla集群上申請了1000個節點被噴之後,現在只敢申請100個節點,後來導致乙個嚴重的結果,自從100節點以來再也沒有跑出結果。進而意識到了spark優化的重要性,現再次總結一下 1.乙個通用的調整並行度的方式 首先要明確乙個概念,hadoop為每乙個partition建立乙個task...