当前位置:  开发笔记 > 编程语言 > 正文

使用Hadoop流处理gzip文件

如何解决《使用Hadoop流处理gzip文件》经验,为你挑选了1个好方法。

我看到许多关于将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。



1> 小智..:

不需要其他命令行参数,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映射器和reducer不会更改任何内容。

我注意到的一个警告但尚未解决:使用带有-inputreader "StreamXmlRecordReader,begin=page,end=/page"选项的gzip输入不会产生任何输出。

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有