根據我的理解,mapper先運行partitioner(如果有的話),然後運行Reducer。但是如果我們使用Partitioner類,我不確定Sorting和Shuffling階段何時運行?當分區程序在Map Reduce中運行時?
0
A
回答
0
0
洗牌和排序階段將總是執行(跨越映射器和減速器節點)。
在MapReduce的不同階段的層次結構如下:
地圖 - >分區 - >合(可選) - >隨機和排序 - >減少。
0
簡短的回答是:數據在減速器排序運行時,混洗/之前排序運行減速器(總是)和後的地圖/組合器(如果有的話)/分割器(如果有的話)。
長的答覆是,爲MapReduce工作有4名主力隊員: 映射,合,分區程序,減速。所有這些都是您可以通過自己實現的類。
讓我們著名的字計數程序,假設我們工作包含分割:
pippo, pluto, pippo, pippo, paperino, pluto, paperone, paperino, paperino
每個字的記錄。
映射
每個映射器運行在你的文件的一個子集,它的任務是讀取分割每個記錄和鍵指定給每個記錄將輸出。 映射器將在磁盤(本地磁盤)上存儲中間結果。
從該階段的中間輸出將是
pippo,1
pluto,1
pippo,1
pippo,1
peperino,1
pluto,1
paperone,1
paperino,1
paperino,1
在此將被存儲它運行映射器節點的本地磁盤上。
合
這是一個小型減速器和可聚合的數據。它也可以運行連接,即所謂的map-join。此對象有助於節省帶寬到羣集中,因爲它聚合了本地節點上的數據。
從組合,它仍然是映射器階段的一部分的輸出,將是:
pippo,3
pluto,2
paperino,3
paperone,1
當然這裏是從一個節點的數據。現在我們必須將數據發送給減速器才能獲得全局結果。哪個Reducer將處理記錄取決於分區器。
分區程序
它的任務是在所有可用的減速傳播數據。該對象將讀取組合器的輸出,並將選擇將處理密鑰的減速器。
在這個例子中,我們有兩個減速器,我們使用以下規則:
all the pippo goes to reducer 1
all the pluto goes to reducer 2
all the paperino goes to reducer 2
all the paperone goes to reducer 1
所以所有的節點將發送具有關鍵皮波相同的減速記錄(1),所有的節點將發送其中有鑰匙冥王星一樣減速器(2)中的記錄等等...
這裏就是數據得到洗牌/排序,而且由於組合已經降低了本地數據,該節點必須只發送4條記錄而不是9條。
減速
這個對象能夠從每個節點彙總數據,它也能夠對數據進行排序。
相關問題
- 1. 我可以運行Hadoop onflow(應用程序運行時運行map reduce)
- 2. 錯誤java.lang.RuntimeException:java.lang.ClassNotFoundException:wordcount_classes.WordCount $運行map reduce程序時的地圖
- 3. 在Map/Reduce中運行MongoDB查詢
- 4. Map Reduce分析時間序列
- 5. 的Hadoop的Map Reduce程序
- 6. 在CouchBase Lite中運行map reduce時出錯
- 7. MongoDb v.1.8 +:如何在臨時集合中運行Map-Reduce
- 8. 如何使用eclipse從windows運行map reduce程序
- 9. 在hadoop上使用grep map-reduce程序
- 10. 的map-reduce排序
- 11. 在Hadoop的Map/Reduce程序中執行多個作業
- 12. 如何在Hadoop中執行Map Reduce內的perl程序?
- 13. Java 8 Map和Reduce不運行
- 14. 相當於Map-Reduce的Elasticsearch
- 15. 錯誤運行時的Hadoop的Map Reduce只有地圖在職
- 16. Hadoop Map/Reduce工作分配
- 17. 分組使用Map和Reduce
- 18. Map Reduce分佈式緩存
- 19. 運行本地hadoop map-reduce不會按預期劃分數據
- 20. 如何修改Map-Reduce執行順序?
- 21. Hadoop Map Reduce程序有多複雜?
- 22. 基準Hadoop Map-Reduce應用程序
- 23. MongoDB中的map-reduce降序排序
- 24. Map和Reduce是否在單獨的JVM中運行?
- 25. 在Discodex中存儲的數據上運行Disco map-reduce作業
- 26. 問題在cygwin中運行簡單的map-reduce hadoop示例
- 27. 在MongoDB中學習Map-Reduce
- 28. 在javascript中使用map reduce
- 29. 遠程運行Hadoop map-reduce作業會導致EOFException?
- 30. JavaScript Map Reduce:怪異行爲
Map→Partitioner→Sort→Shuffle→Sort→Reduce https://0x0fff.com/hadoop-mapreduce-comprehensive-description/ – cody123