编写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"被解开的
任何帮助,谢谢,
答案 0 :(得分:1)
我的错误。在向hadoop.apache.org提交了一个问题之后。我被告知hadoop实际上已经解开了test.tgz。
虽然这个名字仍然是test.tgz,但它是一个经过非武装的指挥。因此文件可以像“cat test / test.1.txt”
一样读取答案 1 :(得分:0)
这将解开tar -zxvf test.tgz