我有大量文本文件,其大小合計爲1 TB。比方說,我必須對每個文件執行字數統計並分別存儲每個文件的結果。 Apache Hadoop是否是這種問題的正確解決方案?每個文件的大小是5 MB。我無法連接文件,因爲我想單獨查看每個文件的字數統計結果。我希望Hadoop做的是將每個文件作爲輸入提供給映射器,並在reducer中爲其生成單獨的輸出文件。使用Apache Hadoop處理大量文本文件
0
A
回答
0
看看的WholeFileInputFormat.java
和WholeFileRecordReader.java
在這裏 - https://github.com/tomwhite/hadoop-book/tree/master/ch08-mr-types/src/main/java 這將幫助你閱讀一個文件的內容作爲一個記錄。我認爲你可能不得不調整InputFormat和RecordReader的一點點來發布文件名作爲關鍵。
在普通的map-reduce中,我認爲它將是一個Map only作業,其中每個map任務負責計算記錄中的不同單詞(這是文件的全部內容)。您可以直接存儲這些地圖任務的輸出,這些任務會爲您提供單個文件的字數。
我相信你正在比較你的用例和標準字數映射reduce應用程序,其中reducer用於計算所有輸入(在你的案例中的所有文件)的單詞。你不打算這樣做,因此我說你不會在這裏減速。
我不確定是否使用reducer來計算單個文件中的單詞是個好主意。
其他選項是使用上面提到的inputformat和recordreader,並使用Cascading或Apache Pig或在map-reduce之上的一些高級抽象來簡化您的工作。
相關問題
- 1. 使用Hadoop處理大量小文件集
- 2. Hadoop分佈式緩存處理大查找文本文件
- 3. 處理大量文件
- 4. 使用Hadoop處理xml文件
- 5. 在Python中使用Hadoop來處理一個大的csv文件
- 6. 使用Hadoop處理大型二進制文件
- 7. 大量小文件Hadoop
- 8. 使用apache poi處理excel文件
- 9. 使用APACHE POI處理docx文件
- 10. 在Python中處理大文本文件
- 11. 在C中處理大文本文件#
- 12. 如何處理大型文本文件?
- 13. 在R中處理大文本文件
- 14. 處理大型文本文件?
- 15. 在C中處理大文本文件#
- 16. FINDSTR使用文本文件中的變量(批處理,腳本)
- 17. AS3處理大量文本輸入?
- 18. 用hadoop處理非常小的文件
- 19. 很多文本文件中的大量數據 - 如何處理?
- 20. 處理大文件
- 21. 文本文件處理 - 使用java
- 22. 使用grep處理文本文件
- 23. 使用bash處理文件和文本
- 24. 處理大文件
- 25. 使python腳本處理大量文件更快
- 26. Hadoop大數據文件文本搜索
- 27. 在Hadoop中處理條件文件
- 28. 使用芹菜來處理巨大的文本文件
- 29. 使用Zeppelin和Spark處理大文本文件
- 30. 處理大量的JSON文件