我已经编写了一个map map python map-reduce job,它接受来自标准输入的数据并处理它以产生一些输出。它在本地执行时工作正常。但是,当我尝试使用hadoop执行它时,我得到文件未找到异常。它无法找到mapper.py文件。此外,这是我用来运行脚本的命令:
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 :(得分:0)
从文件路径中删除$ PWD解决了这个问题。工作命令:
hadoop jar hadoop-streaming-1.1.1.jar -D mapred.reduce.tasks = 0 -file" mapper.py" -mapper" mapper.py" -input" relevant / test.txt" -output" relevant / test_output_8.txt"
另外,请确保使用"指定路径。 " 。我在网上看到了很多例子,其中的例子是" "丢失。