【问题标题】:Hadoop - Input path does not existHadoop - 输入路径不存在
【发布时间】:2013-04-16 10:12:46
【问题描述】:

我确实设置了 hadoop Ubuntu 操作系统,遵循了所有必要的步骤, 1.创建hdfs文件系统 2.将文本文件移动到输入目录 3.拥有访问所有目录的权限。 但是当运行简单的字数统计示例时,我得到了

Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: file:/user/root/input
at org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:224)

但是,输入路径是有效的,甚至可以从 Eclipse 本身查看该路径中的文件,所以请协助我错了。

附上截图供参考

【问题讨论】:

  • 在终端中,如果你执行hadoop fs -ls /user/root/input,你会得到什么?只是想验证您的 DFS 也可以通过那里访问,而不仅仅是 eclipse。
  • @Quetzalcoatl,结果:root@master:/usr/local/hadoop-0.20.2# bin/hadoop fs -ls /user/root/input 找到 2 项 -rw-r--r -- 1 根超级组 405 2013-04-16 15:07 /user/root/input/sigle -rw-r--r-- 1 根超级组 302 2013-04-12 15:23 /user/root/input/ single.txt 可以连接

标签: eclipse ubuntu hadoop mapreduce


【解决方案1】:

在您的代码中添加以下 2 行:

config.addResource(new Path("/HADOOP_HOME/conf/core-site.xml"));
config.addResource(new Path("/HADOOP_HOME/conf/hdfs-site.xml"));

您的客户正在调查本地 FS。

【讨论】:

  • 您好,这两行看起来都一样,所以我需要添加两者。我们必须提及conf 文件夹的位置,而不是/HADOOP_HOME/
  • 问题解决了,我现在使用了带有 hdfs 位置的路径,“hdfs://master:9000/user/root/input”
  • 谢谢,你的建议也有效,同时用我的 hadoop 的 conf 文件夹位置替换了 HADOOP_HOME
  • @Tariq 你能解释一下为什么它会查看本地 FS 吗?
【解决方案2】:

对于 windows 7 上的 hadoop-2.2.0,我添加了以下行并解决了问题(注意:我的 Hadoop 主页是:C:\MyWork\MyProjects\Hadoop\hadoop-2.2.0)

配置 conf = new Configuration();

conf.addResource(new Path("C:\MyWork\MyProjects\Hadoop\hadoop-2.2.0\etc\hadoop\core-site.xml"));

conf.addResource(new Path("C:\MyWork\MyProjects\Hadoop\hadoop-2.2.0\etc\hadoop\hdfs-site.xml"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多