我有大約170 GB的數據。我必須使用hadoop 2.7.3來分析它。有14名工人。我必須找到每個文檔的唯一MIME類型的總數,例如文本/ html類型的文檔總數。當我運行mapreduce作業(用python編寫)時,Hadoop會返回許多輸出文件,而不是我期望的單個文件。我認爲這是由於許多工人單獨處理一些數據並給出結果。我想得到單一的輸出。哪裏有問題。我如何限制hadoop提供單一輸出(通過結合所有小型輸出文件)。如何結合hadoop mappers輸出獲得單一結果
0
A
回答
1
您的工作是爲每個映射器生成1個文件,您必須使用1個reducer強制執行reducer階段才能完成此操作,您可以在所有映射器中完成相同的密鑰。
2
您可以使用Hadoop getmerge命令合併結束文件,當您從HDFS檢索數據:
hadoop fs -getmerge /output/reduce/ /localcatalog/mergedresult.txt
每個映射器和減速會生成一個單獨的文件,並通過減少映射器和減壓器你會數量降低您的工作並行度。我認爲,不要將reducer限制爲單個輸出,最好的方法是使用提供的命令從hdfs獲取合併結果。
1
使你的映射器發出處理每個文件 - (doc-mime-type, 1)
然後在減少階段計數所有這些對。從本質上講,這是一個標準的字數統計練習,除了您的mapper會爲每個doc的mime類型發射1個字符。
關於要設置的還原器數量:Alex合併還原器結果的方式是可取的,因爲它允許在還原階段使用所有工作器節點。但是,如果作業要在1-2個節點上運行,那麼只需一個減速器就可以正常工作。
相關問題
- 1. 如何結合兩個查詢來獲得一個結果?
- 2. 如何合併或mvc4相結合的結果,以獲得期望的結果
- 3. Python獲得混合結果。
- 4. 結合2 mysql結果輸出
- 5. 如何獲得結果?
- 6. 如何獲得此結果
- 7. 如果您希望獲得單一結果,「SELECT TOP 1」是否是獲得單一結果的最佳方法?
- 8. 如何輸出結果?
- 9. 獲得合併PR結果的合併結果
- 10. 如何結合兩個表來獲得所需的結果
- 11. 如何獲得一個表結果
- 12. 如何獲得Fping結果輸出端子
- 13. 如何獲得詳細的結果輸出ElasticSearch
- 14. 在同一頁輸出表單結果
- 15. php - 無法獲得查詢的輸出結果。 (如果有輸出的話)
- 16. BASH結合簡單的程序來得到一些輸出
- 17. 獲得一個類輸出的結果在PHP中
- 18. 如何結合JSON結果
- 19. hadoop得到實際的mappers人數
- 20. 的Clojure - 結合結構以獲得平坦的結果
- 21. 如何在symfony2中使用DQL獲得單一結果
- 22. 如何獲得單一的實體結果
- 23. 獲得從結果
- 24. 獲得MySQL結果
- 25. 從輸入獲得值,結果爲NaN
- 26. aspnet_regiis.exe輸出結果
- 27. 將兩個不同選擇的結果合併爲一個獲得結果集
- 28. 如何在Android的Activity結果中獲得結果?
- 29. 如何獲得監測結果(Jmeter)的結果?
- 30. 如何將結果輸出到JSFiddle中的'結果'窗口?
你可以設置setnumreducetasks(1)來獲得單個輸出,我相信 – Bhavesh
你能更具體嗎?什麼是所需的輸出格式?你得到的輸出是什麼? – vefthym