我通過明確的指導閱讀和網絡包括一個here洗牌和排序的MapReduce
我的問題上其他一些環節是
其中究竟洗牌和排序發生呢?
根據我的理解,它們都發生在mappers和reducer上。但是一些鏈接提到,映射器上發生的混洗以及對減速器的排序。
有人可以確認我的理解是否正確;如果不是,他們可以提供額外的文件,我可以通過?
我通過明確的指導閱讀和網絡包括一個here洗牌和排序的MapReduce
我的問題上其他一些環節是
其中究竟洗牌和排序發生呢?
根據我的理解,它們都發生在mappers和reducer上。但是一些鏈接提到,映射器上發生的混洗以及對減速器的排序。
有人可以確認我的理解是否正確;如果不是,他們可以提供額外的文件,我可以通過?
洗牌:
的MapReduce使得該輸入到每一個減速器由鍵排序的保證。系統執行排序和transfers map outputs to the reducers as inputs
的過程稱爲混洗。
排序:
排序發生在MapReduce的程序的各個階段,所以還可以在地圖中存在和減少階段。
請看看這個圖
在地圖中添加更多的描述上面的圖像和減少階段。
地圖邊:
當map函數開始產生輸出,它不是簡單地寫入磁盤。在將輸出寫入映射到磁盤之前,將首先將它們最終發送到的線程divides the data into partitions corresponding to the reducers
。在每個分區中,background thread performs an in-memory sort by key
。
的減少副作用:
當所有的地圖輸出已被複制,Reduce任務移動到排序階段(這應該適當地稱爲合併階段,作爲分選在地圖上進行側),它合併地圖輸出,保持排序順序。這將在一輪中完成。
來源:Hadoop權威指南。
對,回到我原來的問題,洗牌和排序都發生在mappers和reducer上嗎? – red
是的!在各種情況下,映射器和縮減器都會進行混洗和排序。 – mrsrinivas