我看到很多关于将hadoop MapReduce结果输出为gzip格式或任何其他压缩格式的帖子。然而,关于hadoop-streaming是如何读入(输入)压缩格式的,我并没有看到太多。我看过一些关于使用-jobconf stream.recordreader.compression=gzip http://mail-archives.apache.org/mod_mbox/hadoop-common-user/200907.mbox/%3C73e5a5310907141349k3329c5cua4bb58fcf103522@mail.gmail.com%3E来做输入部分的老文章。目前,我在Ubuntu LTS 12.04上使用Cloudera CDH 5。用python编写mapper和reducer。
发布于 2014-10-30 07:08:38
不需要额外的命令行参数,Hadoop流作业本身就支持Gzip输入。Gzip文件将被自动检测并解压缩。只需使用-input选项传递gzip文件即可。下面是一个非常简单的例子:
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar -input /user/johndoe/test_input.gz -output /user/johndoe/output -mapper /bin/cat -reducer /usr/bin/wc
在输入方面,使用Python映射器和缩减程序不会改变任何事情。
我注意到但尚未解决的一个警告是:使用带有-inputreader "StreamXmlRecordReader,begin=page,end=/page"选项的gzip输入不会产生任何输出。
https://stackoverflow.com/questions/23230578
复制相似问题