資料儲存在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端。也...