hadoop streaming 不要解压缩档案
hadoop streaming don't untar archives
写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
在"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"
任何帮助,谢谢
这将解压 tar -zxvf test.tgz
我的错误。在向 hadoop.apache.org 提交问题后。有人告诉我,hadoop 实际上已经解压缩了 test.tgz.
虽然名称仍然是test.tgz,但它是解压后的目录。所以文件可以像 "cat test/test.1.txt"
写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
在"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"
任何帮助,谢谢
这将解压 tar -zxvf test.tgz
我的错误。在向 hadoop.apache.org 提交问题后。有人告诉我,hadoop 实际上已经解压缩了 test.tgz.
虽然名称仍然是test.tgz,但它是解压后的目录。所以文件可以像 "cat test/test.1.txt"