首个hadoop项目错误:"输入路径不存在"

12
为了建立一个简单的Hadoop项目,我正在按照这个教程进行操作:http://ebiquity.umbc.edu/Tutorials/Hadoop/23%20-%20create%20the%20project.html 我的Hadoop单节点似乎运行正常。
当我使用以下代码指定In文件夹时:
FileInputFormat.setInputPaths(conf, new Path("In"));

我收到了这个错误:

13/03/03 22:05:27 ERROR security.UserGroupInformation: PriviledgedActionException as:DEVUSER cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9100/user/DEVUSER/In

目前In文件夹创建在C:\homedir\hadoop-1.0.4\In路径下。

我需要在哪里创建"In"文件夹,以便它出现在hdfs://localhost:9100/user/DEVUSER/In中?我需要更新一个xml文件来指向我的本地文件系统上的一个文件夹吗?

3个回答

26

首先,您需要将输入文件上传到HDFS文件系统中:

bin/hadoop fs -mkdir In

将在HDFS中创建名为 /user/DEVUSER/In 的目录。
bin/hadoop fs -put *.txt In

将当前目录下所有*.txt文件复制到集群(HDFS)中。

您似乎跳过了教程中的上传数据章节。按照它的步骤操作,您的问题应该会得到解决。


亲爱的,这些文件在文件系统中实际存储在哪里?这样我就可以删除输出目录了吗? - Ashish Ratan
1
你是指存储在HDFS中的文件吗?HDFS是一个分布式文件系统,因此文件存储在多个主机上。您无法直接访问或修改物理文件。您必须使用HDFS命令来删除它们。请将您的查询作为新问题发布并提供足够的详细信息。 - harpun
我已经从你提供的信息得到答案,我们需要通过命令修改HDFS目录,感谢提供信息。 - Ashish Ratan
我又有另一个问题,能否请您告诉我为什么我在运行jar时会得到classNotFound异常?我会给你问题的链接。 - Ashish Ratan
我有一些jpeg格式的图片文件作为我的地图程序的输入。我使用bin/hadoop fs -put ...命令将所有文件复制到~/hadoop/hds/data/文件夹中。我将/〜hadoop/hdfs/data/指定为我的jar文件的输入路径。但仍然出现上述错误。我错过了什么,非常感谢您的帮助! - Tariq

2
如果您不想将文件上传到HDFS而是想从本地系统访问它,请尝试设置您的输入路径如下。
FileInputFormat.setInputPaths(conf, new Path("file://path of the In Folder on your File system "));

1
如harpun所说,但有些情况下,即使您尝试在HDFS下创建该目录,它也不会成功,并显示以下消息:mkdir:`In':没有那个文件或目录 解决方法是:

bin/hadoop fs -mkdir /tmp/In

然后将文本文件复制到HDFS集群中

bin/hadoop fs -put *.txt /tmp/In


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接