使用gzip作为reducer会产生损坏的数据

时间:2014-05-20 19:07:26

标签: hadoop compression hadoop-streaming

当我像这样运行hadoop流时:

hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar 
       -Dmapred.reduce.tasks=16
       -input foo
       -output bar
       -mapper "python zot.py"
       -reducer gzip

我在输出目录中得到16个文件,唉,腐败:

$ hadoop fs -get bar/part-00012
$ file part-00012
gzip compressed data, from Unix
$ cat part-00012 | gunzip >/dev/null

gzip: stdin: invalid compressed data--format violated

当我在视觉上检查cat part-00012 | gunzip的输出时,我看到看起来有点正确然后非常错误的部分,然后gunzip就死了。

  • 为什么文件损坏了?

PS。我知道我可以使用mapred.output.compress=true将我的数据集拆分为少量gzip压缩文件。

PPS。这是vw

1 个答案:

答案 0 :(得分:0)

您希望直接在jobconf设置中使用output.compress。无需通过gzip发送。 请参阅my answer您的其他问题。