【问题标题】:Hadoop streaming failed with java.io.FileNotFoundExceptionHadoop 流式传输失败并出现 java.io.FileNotFoundException
【发布时间】:2014-06-10 20:29:14
【问题描述】:

我编写了一个仅映射的 python map-reduce 作业,它接受来自标准输入的数据并对其进行处理以产生一些输出。在本地执行时它工作正常。但是,当我尝试使用 hadoop 执行它时,我得到了 file not found 异常。它无法找到 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.

谁能弄清楚我在这里遗漏了什么?

【问题讨论】:

    标签: python hadoop mapreduce hadoop-streaming


    【解决方案1】:

    从文件路径中去掉 $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"

    另外,请确保使用 " " 指定路径。我在网上遇到了很多示例,其中的示例缺少“ ”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 2012-01-24
      • 2020-03-09
      • 1970-01-01
      相关资源
      最近更新 更多