2016-07-26 157 views
0

I created a folder in hdfs。現在,我想從我的本地文件系統的文件上傳到tmp的文件夾,例如:Bash - 如何檢查文件是否已上傳到hdfs?

hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp 

但我得到的消息:

put: '/user/root/input/tmp': File exists 

我不明白:當我運行測試如果文件存在,我沒有看到列出的文件,但該文件夾具有文件大小(4811 bites)。再次,TMP甚至可能不是一個文件夾: enter image description here

  • 我怎麼可以看到,如果TMP是一個文件夾?
  • 如何查看README.md文件是否在tmp中,或者如果沒有,我怎麼能把它放在那裏?
  • 從這裏啓動SparkShell時,我無法訪問該文件(輸入路徑不存在)。爲什麼?

回答

2

根據該tmp是一個文件。如果它是一個目錄,它會顯示drw_r__r__,注意d,你沒有這個,所以它是一個文件。

你應該已經運行:

hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp/README.md

+0

爲什麼要一個使用'Hadoop的fs'而不是'hdfs dfs'? – daemon12

+1

@ daemon12謝謝你的提問,我剛剛檢查過它的實際hadoop dfs'已被棄用。我會從答案中刪除該部分。 –

0

在情況下,如果tmp目錄是已經存在的,你可以直接寫信給它省略文件名cataloge:

hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp/ 

添加額外的「 /'在最後。如果在最後設置「/」 - 這將寫入目錄,否則命令將嘗試路徑中的最後「/」符號後,創建一個名稱的文件

相關問題