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 文件以指向本地文件系统上的文件夹?

4

3 回答 3

26

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

bin/hadoop fs -mkdir In

将创建一个以/user/DEVUSER/InHDFS 命名的目录。

bin/hadoop fs -put *.txt In

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

您似乎跳过了教程中的上传数据一章。遵循它,您的问题应该得到解决。

于 2013-03-03T22:58:26.403 回答
2

如果您不想将文件上传到 hdfs 而是从本地系统访问它,请尝试像这样设置输入路径。

FileInputFormat.setInputPaths(conf, new Path("file://path of the In Folder on your File system "));
于 2013-04-17T09:58:37.997 回答
1

正如 harpun 所说,但在某些情况下,即使您尝试在 HDFS 下创建该目录,它也不会并给您该消息: mkdir: `In': No such file or directory 作为解决方案,您需要:

bin/hadoop fs -mkdir /tmp/In

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

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

于 2014-05-23T13:27:38.283 回答