我有大量文本文件,其大小合计为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. 批处理文件使用系统变量从文本文件中读取