shuffle過程簡介 筆記

2021-07-25 10:51:12 字數 591 閱讀 1630

資料儲存在hdfs上

拿到資料後分片處理

輸入到map

輸出鍵值對

寫到快取,滿的時候溢寫到磁碟

快取的資料寫入磁碟的過程中,分割槽排序,合併

多個磁碟檔案歸併

通知reduce任務拉取

map端的shuffle

1輸入資料和執行任務:

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

2寫入快取

在溢寫過程中:

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

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

排序:預設操作

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

4檔案歸併:

在map任務結束前進行歸併

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

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

reduce端的shuffle任務

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

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

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

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

shuffle過程詳解

這張是官方對shuffle過程的描述。但我可以肯定的是,單從這張圖你基本不可能明白shuffle的過程,因為它與事實相差挺多,細節也是錯亂的。後面我會具體描述shuffle的事實情況,所以這裡你只要清楚shuffle的大致範圍就成 怎樣把map task的輸出結果有效地傳送到reduce端。也可以這...

MapReduce 詳解Shuffle過程

這張是官方對shuffle過程的描述。但我可以肯定的是,單從這張圖你基本不可能明白shuffle的過程,因為它與事實相差挺多,細節也是錯亂的。後面我會具體描述shuffle的事實情況,所以這裡你只要清楚shuffle的大致範圍就成 怎樣把map task的輸出結果有效地傳送到reduce端。也可以這...

MapReduce 詳解Shuffle過程

原文 這張是官方對shuffle過程的描述。但我可以肯定的是,單從這張圖你基本不可能明白shuffle的過程,因為它與事實相差挺多,細節也是錯亂的。後面我會具體描述shuffle的事實情況,所以這裡你只要清楚shuffle的大致範圍就成 怎樣把map task的輸出結果有效地傳送到reduce端。也...