0

我有一个与Hadoop Streaming 类似的问题 - 无法找到文件错误。然而,那里提出的解决方案都没有奏效。

我的命令行是:

hadoop jar /mnt/shared/hadoop-streaming-1.0.3.jar -input /user/cloudera/mz_paf/batch_sk=1234 \
-output /user/cloudera/mz_paf/out \
-file /mnt/shared/java/paf-rules.properties -file /mnt/shared/java/pafvalid.py  \
-mapper "pafvalid.py paf-rules.properties 10"

这导致

java.io.IOException: Cannot run program "pafvalid.py": java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
    at org.apache.hadoop.streaming.PipeMapRed.configure(PipeMapRed.java:214)
    at org.apache.hadoop.streaming.PipeMapper.configure(PipeMapper.java:66)

我尝试了其他 SOF 问题中也提到的其他几种方法,包括对输入文件使用 HDFS 位置:仍然找不到文件的相同错误。还尝试将文件放在本地目录中以避免路径问题。还是没有骰子。

4

1 回答 1

0

我没有使用 hadoop 流将参数直接传递到命令行。如果我是你,我会先尝试将这些参数放入 Python 脚本中。

然后在此处更改命令行

-mapper "pafvalid.py paf-rules.properties 10"

-mapper /mnt/shared/java/pafvalid.py

如果你明白了,请纠正我

于 2013-10-12T14:54:20.310 回答