使用Hadoop流处理gzip文件

使用Hadoop流处理gzip文件,hadoop,mapreduce,compression,hadoop-streaming,Hadoop,Mapreduce,Compression,Hadoop Streaming,我看到许多关于将hadoop MapReduce结果输出为gzip格式或任何其他压缩格式的帖子。然而,我不太了解hadoop流媒体是如何读取(输入)压缩格式的。我看到了一些关于使用-jobconf stream.recordreader.compression=gzip来完成输入部分的老文章。目前,我正在Ubuntu LTS 12.04上使用Cloudera CDH 5。用python编写mapper和reducer。不需要额外的命令行参数,Hadoop流作业本机支持Gzip输入。Gzip文件将

我看到许多关于将hadoop MapReduce结果输出为gzip格式或任何其他压缩格式的帖子。然而,我不太了解hadoop流媒体是如何读取(输入)压缩格式的。我看到了一些关于使用
-jobconf stream.recordreader.compression=gzip
来完成输入部分的老文章。目前,我正在Ubuntu LTS 12.04上使用Cloudera CDH 5。用python编写mapper和reducer。

不需要额外的命令行参数,Hadoop流作业本机支持Gzip输入。Gzip文件将自动检测并解压缩。只需使用-input选项传递gzip文件。下面是一个非常简单的例子:

$hadoop jar/usr/lib/hadoop-mapreduce/hadoop-streaming.jar-input/user/johndoe/test\u input.gz-output/user/johndoe/output-mapper/bin/cat-reducer/usr/bin/wc

在输入方面,使用Python映射器和reducer不会改变任何东西


我已经注意到但尚未解决的一个警告:将gzip输入与
-inputreader“StreamXmlRecordReader,begin=page,end=/page”
选项一起使用不会产生任何输出。

您尝试过什么吗?流应该自动处理gzip文件。