要设置一个简单的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文件以指向本地文件系统上的文件夹?
答案 0 :(得分:24)
您需要先将输入文件上传到HDFS文件系统:
bin/hadoop fs -mkdir In
将在HDFS中创建名为/user/DEVUSER/In
的目录。
bin/hadoop fs -put *.txt In
会将所有*.txt
个文件从当前目录复制到群集(HDFS)。
您似乎已跳过教程中的Upload data章节。遵循它,你的问题应该解决。
答案 1 :(得分:1)
如果您不想将文件上传到hdfs而是从本地系统访问它,请尝试设置这样的输入路径。
FileInputFormat.setInputPaths(conf, new Path("file://path of the In Folder on your File system "));
答案 2 :(得分:1)
正如harpun所说,但是在某些情况下,即使你试图在HDFS下创建该目录,它也不会给你那个消息:mkdir:`In':没有这样的文件或目录 作为解决方案,您需要:
bin / hadoop fs -mkdir / tmp / In
然后将文本文件复制到HDFS群集
bin / hadoop fs -put * .txt / tmp / In