2014-06-10 66 views
2

我已经写了一个map只有python map-reduce作业,它接受来自标准输入的数据并处理它以产生一些输出。在本地执行时它工作正常。但是,当我试图执行它使用hadoop我得到文件没有发现异常。它无法找到mapper.py文件。另外,这里是我用来运行脚本的命令:Hadoop流式传输失败,java.io.FileNotFoundException

hadoop jar hadoop-streaming-1.1.1.jar -D mapred.reduce.tasks=0 -file "$PWD/mapper.py" -mapper "$PWD/mapper.py" -input "relevance/test.txt" -output "relevance/test_output_8.txt" 

文件test.txt也被复制到HDFS。

错误:

java.io.FileNotFoundException: File /data1/mapr-hadoop/mapred/local/taskTracker/***********/job_201405060940_908425/attempt_201405060940_908425_m_000000_0/work/******/mapper.py does not exist. 

任何一个可以弄清楚我缺少什么吗?

回答

0

摆脱文件路径中的$ PWD解决了这个问题。工作命令:

hadoop jar hadoop-streaming-1.1.1.jar -D mapred.reduce.tasks = 0 -file“mapper.py”-mapper“mapper.py”-input“relevance/test.txt “-output”relevance/test_output_8.txt“

另外,请确保路径用”“指定。我在网上发现了很多例子,其中的例子都有“”的缺失。

相关问题