Shuffle過程的簡單介紹

2021-07-25 06:27:38 字數 518 閱讀 3609

shuffle是連線map和reduce的橋梁

shuffle分為map端的shuffle和reduce端的shuffle

map端的shuffle

1輸入資料和執行任務:

分片後分配map任務,每個任務分配100m快取

2寫入快取

在溢寫過程中:

3溢寫溢寫比達到0.8後啟動溢寫程序,把快取寫入到磁碟

分割槽:預設採用雜湊函式

排序:預設操作

合併:可能發生(combine),減少鍵值對數量

4檔案歸併:

在map任務結束前進行歸併

歸併得到乙個打檔案,放在本地磁碟

如果溢寫檔案大於3時啟動combine操作

reduce端的shuffle任務

1reduce從map任務中拉取資料到本地

2先歸併再合併,寫入磁碟

3多個溢寫檔案歸併成乙個或多個大檔案,檔案中的鍵值對是排序的

4當檔案很少的時候,不需要溢寫,直接在快取中歸併,然後輸出給reduce

Spark的Shuffle過程介紹

spark的shuffle過程介紹 shuffle writer spark豐富了任務型別,有些任務之間資料流轉不需要通過shuffle,但是有些任務之間還是需要通過shuffle來傳遞資料,比如wide dependency的group by key。spark中需要shuffle輸出的map任務...

Spark的Shuffle過程介紹

spark豐富了任務型別,有些任務之間資料流轉不需要通過shuffle,但是有些任務之間還是需要通過shuffle來傳遞資料,比如wide dependency的group by key。spark中需要shuffle輸出的map任務會為每個reduce建立對應的bucket,map產生的結果會根據...

Spark 的 Shuffle過程介紹

spark豐富了任務型別,有些任務之間資料流轉不需要通過shuffle,但是有些任務之間還是需要通過shuffle來傳遞資料,比如wide dependency的group by key。spark中需要shuffle輸出的map任務會為每個reduce建立對應的bucket,map產生的結果會根據...