2014-06-19 114 views
1

下面命令Hadoop的FS -put未知的命令

/my_work/hadoop-1.0.3/bin$hadoop fs -mkdir hdfs://masterNode:8020/tmp/hadoop-hadoop/dfs/LOAN_DATA 

現在創建一個文件夾[LOAN_DATA]當我們打開使用Web URL

/tmp目錄/ Hadoop的Hadoop的內容/ DFS顯示LOAN_DATA

然後我想一些數據從一個TXT文件到文件夾LOAN_DATA使用存儲PUT或copyFromLocal我得到

放:未知命令

/Hadoop的FS -put '/home/hadoop/my_work/Acquisition_2012Q1.txt' HDFS:// masterNode:8020的/ tmp/Hadoop的Hadoop的/ DFS/LOAN_DATA

如何解決這個問題?

回答

3

想你的命令,並「看起來」,有在上面的命令一個錯字錯誤「的Hadoop FS -put ....」。

而是 '-put' 的,用 '-put' 或 '-copyFromLocal'。問題與' - '相關,但正確的字符應該是' - '。因此,錯誤是顯而易見的:-)

這是我的例子(使用get命令,而不是放):

$ hadoop fs –get /tmp/hadoop-data/output/* /tmp/hadoop-data/output/ 
–get: Unknown command 
$ hadoop fs -get /tmp/hadoop-data/output/* /tmp/hadoop-data/output/ 
get: `/tmp/hadoop-data/output/part-r-00000': File exists 
2

阿南德的答案是,當然是正確的。但它可能不是一個錯字,而是一個微妙的陷阱。通常當人們學習新技術時,他們會複製並粘貼來自網站和博客的命令。通常,最初輸入爲破折號的內容將被複製爲連字符。連字符與破折號的區別僅在於它們稍長一點,所以錯誤很難發現,但由於它們是完全不同的字符,所以命令是錯誤的,即「未找到」。當你複製粘貼的命令,並使用它,可能會出現

2

此問題。這是因爲文檔中使用的字體(或字符集)從其複製的位置發生更改。

例如:

如果複製/粘貼和執行命令 -

hdfs dfs -put workflow.xml /testfile/workflow.xml

您可能GET-

–put: Unknown command 

OR

–p-t: Unknown command 

發生這種情況是因爲複製是從UTF-8文件完成的,並且複製的-u(或任何字符)可能具有不同的字符集。

所以只需在終端上鍵入命令(不要複製/粘貼),你應該沒問題。

另外,如果你正在運行的是從 複製和其它一些編輯器的Linux終端上運行它 之前運行的腳本dos2unix一個shell腳本。

如:dos2unix <shell_script.sh>

+0

謝謝!這是我的問題,非常感謝 –