hadoop流媒体不会解压缩档案

时间:2015-02-08 15:47:17

标签: hadoop streaming

编写hadoop流媒体任务时。我使用-archives将tgz从本地机器上传到hdfs任务工作目录,但它没有像文档所说的那样解压缩。我没有运气就搜索了很多。

这是带有hadoop-2.5.2的hadoop流任务启动命令,非常简单

hadoop jar /opt/hadoop/share/hadoop/tools/lib/hadoop-streaming-2.5.2.jar \
    -files mapper.sh
    -archives /home/hadoop/tmp/test.tgz#test \
    -D mapreduce.job.maps=1 \
    -D mapreduce.job.reduces=1 \
    -input "/test/test.txt" \
    -output "/res/" \
    -mapper "sh mapper.sh" \
    -reducer "cat"

和" mapper.sh"

cat > /dev/null
ls -l test
exit 0

in" test.tgz"有两个文件" test.1.txt"和" test.2.txt"

echo "abcd" > test.1.txt
echo "efgh" > test.2.txt
tar zcvf test.tgz test.1.txt test.2.txt

上述任务的输出

lrwxrwxrwx 1 hadoop hadoop     71 Feb  8 23:25 test -> /tmp/hadoop-hadoop/nm-local-dir/usercache/hadoop/filecache/116/test.tgz

但是想要的可能是这样的

-rw-r--r-- 1 hadoop hadoop 5 Feb  8 23:25 test.1.txt
-rw-r--r-- 1 hadoop hadoop 5 Feb  8 23:25 test.2.txt

所以,为什么test.tgz没有像document那样自动解压缩,并且还有其他任何方式可以使" tgz"被解开的

任何帮助,谢谢,

2 个答案:

答案 0 :(得分:1)

我的错误。在向hadoop.apache.org提交了一个问题之后。我被告知hadoop实际上已经解开了test.tgz。

虽然这个名字仍然是test.tgz,但它是一个经过非武装的指挥。因此文件可以像“cat test / test.1.txt”

一样读取

答案 1 :(得分:0)

这将解开tar -zxvf test.tgz