我正在使用java,我正在尝试编写一个mapreduce,它将接收一个包含多个gz文件的文件夹.
我一直在寻找,但我发现的所有教程都放弃了如何处理简单的文本文件,但没有找到解决我问题的任何东西.
我在我的工作场所问过,但只提到scala,我并不熟悉.
任何帮助,将不胜感激.
解决方法:
Hadoop检查文件扩展名以检测压缩文件. Hadoop支持的压缩类型有:gzip,bzip2和LZO.您无需采取任何其他操作来使用这些类型的压缩来提取文件; Hadoop为您处理它.
所以你要做的就是像编写文本文件一样编写逻辑,然后传入包含.gz文件的目录作为输入.
但是gzip文件的问题在于它们不是可拆分的,假设你有每个5GB的gzip文件,那么每个映射器将处理整个5GB文件,而不是使用默认的块大小.