在我的Cloudera VM上运行eclipse中的基本Hadoop wordcout教程时遇到错误。错误是:
Input path does not exist: file:/user/cloudera/wordcount/input
但是,这个目录确实存在,我专门创建了它,我在HDFS文件浏览器中盯着它。
Screenshot of my command line query and browser.
我已经将你看到的命令中的目录复制粘贴到eclipse中的运行配置中,这些是我的论点:
/user/cloudera/wordcount/input /user/cloudera/wordcount/output
代码本身并没有从我下载的示例中修改过,相关的行是:
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
编辑:
hadoop jar /home/cloudera/examples/wordcount.jar WordCount /user/cloudera/wordcount/input /user/cloudera/wordcount/output
这个命令在终端中工作但是当我执行我用这个参数创建的java文件(没有更改,只是export-> jar文件)“/ user / cloudera / wordcount / input / user / cloudera / wordcount / output“然后我得到上述错误。
为什么eclipse不会正常运行此任务?它适用于终端。
答案 0 :(得分:0)
为什么不能正确地执行此任务?
我假设您将/user/cloudera/wordcount/input
作为args[0]
提供给Eclipse?
这将创建new Path(args[0])
,它是本地 JVM和文件系统,由URI file://
指定。
当您向hadoop jar
提供参数时,它知道它应该从HDFS中读取,这是在Hadoop配置的XML文件中指定的,并在URI hdfs://
处查找输入。 / p>
作为参考,ls -l /
与hdfs dfs -ls /
相比是非常不同的输出。前者没有指定的路径。
旁注:默认HDFS路径使用file://
,但 Cloudera Quickstart会为您更改此信息。