java – Hadoop要求输入路径在localhost 9000上

我试图运行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

我错了什么?

我没有触及他的源代码,可以在这里找到:

https://github.com/tomwhite/hadoop-book/tree/3e/ch02

解决方法

您的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 /

更新:运行字数

>启动并运行HDFS.运行hadoop dfs -ls /应该可以工作.
>将包含文本文件文件夹复制到HDFS: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 / *查看输出.

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...