2016-10-20 38 views
4

嗨我是hadoop的新手,並試圖在hdfs中創建名爲twitter_data的目錄。 我已經在softlayer上設置了我的虛擬主機,安裝&成功啓動hadoop。hdfs dfs -mkdir,沒有這樣的文件或目錄

這是我試圖運行稱道:

HDFS DFS -mkdir HDFS://本地主機:9000 /用戶/ Hadoop的/ twitter_data

它不斷地返回該錯誤消息:

/usr/local/hadoop/etc/hadoop/hadoop-env.sh: line 2: ./hadoop-env.sh: Permission denied 
16/10/19 19:07:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
mkdir: `hdfs://localhost:9000/user/Hadoop/twitter_data': No such file or directory 

爲什麼說沒有這樣的文件和目錄?我正在命令它製作目錄,不應該只創建一個目錄嗎?我猜測它一定是權限問題,但我無法解決它。請幫我hdfs專家。我一直花太多時間看似簡單的事情。

在此先感謝。

+0

哦,我希望能夠在我的瀏覽器上查看這個hdfs。我怎樣才能訪問它? –

+0

我試過 'hdfs dfs -mkdir -p/user/Hadoop/twitter_data',我得到這個 '/usr/local/hadoop/etc/hadoop/hadoop-env.sh:line 2:./hadoop-env .sh:Permission denied 16/10/19 19:25:37 WARN util.NativeCodeLoader:無法爲您的平臺加載native-hadoop庫...在適用的情況下使用內建java類 mkdir:從master.someplace調用。 net/198.23.84.123到localhost:9000連接失敗異常:java.net.ConnectException:連接被拒絕;欲瞭解更多詳情,請參閱:http:// wiki.apache.org/hadoop/ConnectionRefused' 我需要能夠在我的瀏覽器上看到這一點。 –

+0

順便說一句,任何人都可以向我解釋剛剛創建一個目錄與在前面有hdfs:// localhost:9000之間的區別是什麼? 我看到了這兩種情況的例子。我只是假設hdfs:// localhost:9000使得可以通過瀏覽器訪問。請糾正我,如果我錯了 –

回答

6

這是因爲父目錄還不存在。嘗試hdfs dfs -mkdir -p /user/Hadoop/twitter_data-p標誌表示所有不存在的指向給定目錄的目錄也將被創建。

至於你在評論中提出的問題,只需輸入你的瀏覽器http://<host name of the namenode>:<port number>/

+0

謝謝。我試過了,我得到了這個錯誤信息:'/usr/local/hadoop/etc/hadoop/hadoop-env.sh:line 2:./hadoop-env.sh:Permission denied' 你知道如何解決這個問題? –

+0

謝謝,它總是允許的問題!解決了它 –

3

使用下面的步驟命令創建目錄:

1)不運行Hadoop和格式化名稱節點: -

$ hadoop namenode -format 

2)執行Hadoop通過: -

$ start-all.sh 

3)現在先製作初始目錄,然後在同一目錄下創建另一個:

$ hadoop fs -mkdir /user 
$ hadoop fs -mkdir /user/Hadoop 
$ hadoop fs -mkdir /user/Hadoop/tweeter_data 

按照上述步驟解決問題。

相關問題