hadoop输入路径不存在

时间:2016-01-22 20:26:21

标签: hadoop

我正在尝试在我的笔记本电脑上设置hadoop。我已经按照一些关于设置hadoop的教程。

我跑了这个命令:

array_push($total_array, 
  array('id'=> $id, 'car'=>$car, 'make'=>$make, 'color' => $color));

如果我再次运行它说它已经存在。

我尝试使用以下命令运行测试jar文件:

bin/hdfs dfs -mkdir /user/<username>  

并收到此例外

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[a-z.]+'

我没有意识到在此错误之前我收到了这个:

16/01/22 15:11:06 INFO mapreduce.JobSubmitter: Cleaning up the staging area /tmp/hadoop-yarn/staging/<username>/.staging/job_1453492366595_0006
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/<username>/grep-temp-891167560

有一个堆栈跟踪如下。 我在Mac PC上。

2 个答案:

答案 0 :(得分:2)

我使用Hadoop 2.7.2,而在关注the Official Docs时,我首先遇到了这个问题。

原因是我忘记了“准备启动Hadoop集群”章节。

我通过在JAVA_HOME中设置etc/hadoop/hadoop-env.sh来解决这个问题。

答案 1 :(得分:1)

对我来说,这是因为使用错误版本的JDK和hadoop。我用过hadoop 2.6.5。起初,我使用oracle JDK 1.8.0_131启动hadoop,运行示例jar并发生错误。在我使用JDK 1.7.0_80后,该示例就像一个魅力。

有一个关于HadoopJavaVersions的页面。