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產生的結果會根據...