Shuffle調優一 調節map端緩衝區大小

2021-09-24 09:02:34 字數 416 閱讀 4679

在spark任務執行過程中,如果shuffle的map端處理的資料量比較大,但是map端緩衝的大小是固定的,可能會出現map端緩衝資料頻繁spill溢寫到磁碟檔案中的情況,使得效能非常低下,通過調節

map端緩衝的大小,可以避免頻繁的磁碟

io操作,進而提公升

spark

任務的整體效能。

map端緩衝的預設配置是32kb,如果每個task處理640kb的資料,那麼會發生640/32 = 20次溢寫,如果每個task處理64000kb的資料,機會發生64000/32=2000此溢寫,這對於效能的影響是非常嚴重的。

map端緩衝的配置方法

val conf = new sparkconf().set("spark.shuffle.file.buffer", "64")

spark調優 shuffle調優

基於spark1.6 引數可以通過 new sparkcontext set 來設定,也可以通過命令的引數設定 conf spark.shuffle.file.buffer 預設值 32k 引數說明 該引數用於設定shuffle write task的bufferedoutputstream的buf...

spark調優 shuffle調優

每乙個shuffle的前半部分stage的task,每個task都會建立下乙個stage的task數量相同的檔案,比如下乙個stage會有100個task,那麼當前stage每個task都會建立100份檔案,會將同乙個key對應的values,一定是寫入同乙個檔案中的,也一定會將同乙個key對應的v...

七 Spark效能調優 Shuffle 調優

目錄 一 調節 map 端緩衝區大小 二 調節 reduce 端拉取資料緩衝區大小 三 調節 reduce 端拉取資料重試次數 四 調節 reduce 端拉取資料等待間隔 五 調節 sortshuffle 排序操作閾值 val conf new sparkconf set spark.shuffle...