当我像这样运行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
死了。
为什么文件会损坏?
另外,我知道我可以把我的数据集分裂成一小部分gzip压缩文件使用 mapred.output.compress=true
.
pps公司。这是给大众的。
1条答案
按热度按时间ttvkxqim1#
您需要在jobconf设置中直接使用output.compress。不需要通过gzip发送。看看我对你另一个问题的回答。