我正在使用 java
,我正在尝试编写一个 mapreduce
,它将接收一个包含多个 gz
的文件夹作为输入文件。
我一直在寻找所有的教程,但我找到的所有教程都说明了如何处理一个简单的文本文件,但没有找到任何可以解决我的问题的方法。
我在我的工作场所四处打听,但只得到了对 scala 的引用,我对此并不熟悉。
如有任何帮助,我们将不胜感激。
最佳答案
Hadoop 检查文件扩展名以检测压缩文件。 Hadoop 支持的压缩类型有:gzip、bzip2 和 LZO。您不需要采取任何额外的操作来使用这些类型的压缩来提取文件; Hadoop 会为您处理。
因此,您只需像编写文本文件一样编写逻辑,并传入包含 .gz 文件的目录作为输入。
但是 gzip 文件的问题是它们不可拆分,假设您有每个 5GB 的 gzip 文件,那么每个映射器将处理整个 5GB 文件,而不是使用默认 block 大小。
关于java - java 中的 mapreduce - gzip 输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26576985/