我有大量文本文件,其大小合計爲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. 在Python中使用Hadoop來處理一個大的csv文件
- 4. 使用apache poi處理excel文件
- 5. 如何處理大型文本文件?
- 6. 在C中處理大文本文件#
- 7. FINDSTR使用文本文件中的變量(批處理,腳本)
- 8. 用hadoop處理非常小的文件
- 9. Spark EMR S3處理大量文件
- 10. 很多文本文件中的大量數據 - 如何處理?
- 11. 使用grep處理文本文件
- 12. 文本文件處理 - 使用java
- 13. 處理大文件
- 14. 使python腳本處理大量文件更快
- 15. 使用Zeppelin和Spark處理大文本文件
- 16. 處理大量的JSON文件
- 17. 使用批處理腳本逐行解析文本文件(批處理文件)
- 18. 處理大型xlsx文件
- 19. 多處理大文件數量
- 20. 處理大量臨時小文件
- 21. 使用Hadoop將文本文件中的段落處理爲單個記錄
- 22. EMR Hadoop處理整個S3文件
- 23. 使用Web服務處理大文件
- 24. 如何使用NSData處理大文件?
- 25. 處理hadoop python中的多個文件
- 26. Hadoop處理非常大的二進制文件
- 27. 大量的Hadoop輸出文件
- 28. 處理文本文件
- 29. 使用VIM管理#TODO(大量文件)
- 30. 批處理文件使用系統變量從文本文件中讀取