2013-03-03 63 views
10

要設置一個簡單的Hadoop項目我下面這個教程:http://ebiquity.umbc.edu/Tutorials/Hadoop/23%20-%20create%20the%20project.html首先Hadoop項目的錯誤:「輸入路徑不存在」

我的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文件以指向本地文件系統上的文件夾?

回答

23

您需要將輸入文件上傳到HDFS文件系統第一:

bin/hadoop fs -mkdir In 

將創建一個在HDFS命名爲/user/DEVUSER/In目錄。

bin/hadoop fs -put *.txt In 

會將所有*.txt文件從當前目錄複製到羣集(HDFS)。

您似乎已經跳過教程中的Upload data一章。按照它,你的問題應該解決。

+0

親愛這些文件所在的物理存儲在文件系統?所以我可以刪除輸出目錄? – 2014-02-07 12:09:16

+1

你的意思是存儲在HDFS中的文件? HDFS是一個分佈式文件系統。所以這些文件存儲在多個主機上。您無法直接訪問或修改物理文件。你必須使用HDFS命令來刪除它們。請發佈您的查詢作爲一個新的問題,並提供足夠的細節。 – harpun 2014-02-07 20:37:37

+0

我從你的信息中得到了答案,我們必須通過命令修改HDFS目錄,感謝信息 – 2014-02-08 04:34:33

1

如果你不想將文件上傳到hdfs而是從本地系統訪問它,然後嘗試設置你這樣的輸入路徑。

FileInputFormat.setInputPaths(conf, new Path("file://path of the In Folder on your File system ")); 
0

正如harpun說,但對於一些情況,即使你試圖HDFS下創建一個目錄,它不會和爲您提供了消息上:mkdir:'在':沒有這樣的文件或目錄 作爲解決該您需要:

bin/hadoop fs -mkdir /tmp/In

,然後將文本文件複製到HDFS集羣

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

相關問題