在我的clouderavm上运行eclipse中的hadoop wordcout教程时,我遇到了一个错误。错误是:
Input path does not exist: file:/user/cloudera/wordcount/input
但是,这个目录确实存在,我已经专门创建了它,并且在我的hdfs文件浏览器中查看它。
我的命令行查询和浏览器的屏幕截图。
我已将您看到的命令中的目录复制粘贴到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
这个命令在终端中工作,但是当我用参数“/user/cloudera/wordcount/input/user/cloudera/wordcount/output”执行构建jar的java文件时(没有更改,只是export->jar文件),我会得到上面的错误。
为什么eclipse不能正确运行这个任务?它从终点站开始工作。
1条答案
按热度按时间xmq68pz91#
为什么eclipse不能正确运行这个任务?
我想你是在付出
/user/cloudera/wordcount/input
作为args[0]
去Eclipse?这将创建
new Path(args[0])
,它是本地jvm和文件系统,由uri指定file://
.当你把论点给
hadoop jar
,它知道应该从hdfs读取,hdfs在xml文件中为hadoop配置指定,并在uri处查找输入hdfs://
.供参考,
ls -l /
相比hdfs dfs -ls /
是非常不同的输出。前者没有指定的路径。旁注:默认的hdfs路径是
file://
,但cloudera quickstart为您改变了这一点。