我正在尝试运行Tom Whites的第2章示例
当我运行命令时:
hadoop MaxTemperature input/ncdc/sample.txt output
我得到的错误是:
11/12/31 18:08:28 INFO mapred.JobClient: Cleaning up the staging area hdfs://localhost:9000/tmp/hadoop-mymac/mapred/staging/mymac/.staging/job_201112311807_0001
11/12/31 18:08:28 ERROR security.UserGroupInformation: PriviledgedActionException as:mymac (auth:SIMPLE) cause:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/mymac/input/ncdc/sample.txt
Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/mymac/input/ncdc/sample.txt
我错了什么?
我没有触及他的源代码,可以在这里找到:
答案 0 :(得分:6)
您的core-site.xml
和hdfs-site.xml
文件已配置为使用localhost:9000
。如果这不是您所期望的(这是我从帖子的标题中获得的),那么你想要的是什么?
我们在谈论什么版本的Hadoop?您是如何安装Hadoop发行版的?从你的其他问题和配置文件,我猜你用过CHD4。如果你查看the instructions from Cloudera,你能看到你错过了什么吗?
在启动Hadoop之前,您是否格式化了HDFS?
$ hadoop namenode -format
然后,在启动Hadoop之后,除了INFO消息之外你还得到什么吗?
您是否将输入数据复制到HDFS?
$ hadoop dfs -put /tmp/my/input/data input
最后,您从简单的HDFS命令中获得了什么,例如:
$ hadoop dfs -ls /
更新:运行字数
hadoop dfs -ls /
应该有效。hadoop dfs -put text_files input_folder
hadoop dfs -ls .
以查看您的文件是否已正确复制。hadoop-examples-X.Y.Z.jar
文件。导航到它所在的目录,然后运行:
$ hadoop jar hadoop-examples-*.jar WordCount input_folder output_folder
。
您应该看到MapReduce应用程序的进度。
hadoop dfs -cat output_folder/*
查看输出。答案 1 :(得分:1)
忘记在etc / hadoop / hadoop-env.sh中设置JAVA_HOME也可能导致此错误