我在ubuntu上安装了一个单节点集群。 我正在尝试执行wordcount程序。 我创建了jar文件。 但是当我要执行这个命令时:
hadoop jar '/home/hduser/Desktop/TutorialFolder/firstTutorial.jar' WordCount /home/hduser/Desktop/TutorialFolder/input_data /TutorialFolder/Output
它给出了以下错误:
Exception in thread "main"
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist:
hdfs://localhost:9000/home/hduser/Desktop/TutorialFolder/input_data
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:323)
答案 0 :(得分:1)
给mapreduce的输入和输出路径必须是有效的HDFS路径,除非您在本地模式下运行Hadoop。
此处传递的输入路径/home/hduser/Desktop/TutorialFolder/input_data
看起来像本地目录。在HDFS中创建类似的结构,并将输入数据上传到HDFS中的该目录。
hdfs dfs -mkdir -p /wordcount/input_data
hdfs dfs -put /home/hduser/Desktop/TutorialFolder/input_data/ /wordcount/input_data/
输出路径也必须是HDFS。 并使用HDFS路径运行jar,
hadoop jar /home/hduser/Desktop/TutorialFolder/firstTutorial.jar WordCount /wordcount/input_data /wordcount/output
答案 1 :(得分:0)
如果您在伪分布式模式下运行,则输入路径必须在HDFS上 ,而且没有Desktop文件夹...
运行一些hdfs dfs -ls /home/hduser
来检查可用的内容,并将一些文件放在那里
如果该文件夹不存在,您应该回到教程并设置HDFS。
运行hdfs dfs -mkdir -p /home/hduser
注意:您可能会因
而获得权限被拒绝错误