2016-07-26 3 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ビット)のサイズを持っています。 enter image description here

  • がどのように私はtmpがフォルダであるかどうかを確認できます。しかし、再び、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

はなぜ1が使用する 'のHadoop fs' - 最後に、あなたは「/」を設定した場合'hdfs dfs'の代わりに? – daemon12

+1

@ daemon12尋ねてくれてありがとう、ちょうど私がチェックし、その実際には廃止された 'hadoop dfs'があります。私は答えからその部分を削除します。 –

0

をtmpがすでに存在してcatalogeであれば、ファイル名を省略し、それに直接書き込むことができます:

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

は余分を追加 '/'最後にそれ以外のコマンドはパスの最後の「/」記号の後に名前のファイルを作成しようとします、カタログに書き込まれます

関連する問題