java - java 中的 mapreduce - gzip 输入文件

标签 java hadoop mapreduce gzip

我正在使用 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/

相关文章:

java - 从 J2ME 客户端轮询 HTTP 服务器

java - 尝试在空对象引用上调用虚拟方法 'java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String)'

java - hadoop java.net.URISyntaxException : Relative path in absolute URI: rsrc:hbase-common-0. 98.1-hadoop2.jar

sorting - Hadoop - 按键正确排序并按 reducer 分组

java - 公共(public) CLI : recognize file name *. 十

java - Java中的按位乘法和加法

hadoop - spark 的 HiveContext 内部是如何工作的?

hadoop - Pyspark 操作提交时 oozie 失败 : '[Errno 2] No such file or directory'

hadoop - 在 pig 中减去两个相同关系的元组

eclipse - 无法运行 MapReduce kmeans 代码