web-dev-qa-db-ja.com

copyFromLocalスイッチを使用してデータをhdfsに移動する

ここで何が起こっているのかわかりませんが、ローカルファイルシステムのディレクトリから単純なファイルをhdfsに指定されたディレクトリにコピーしようとしています。

私のhdfs-site.xmlでは、次のプロパティを使用してhdfsのディレクトリが/ home/vaibhav/Hadoop/dataNodeHadoopDataになるように指定しました-

<name>dfs.data.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>

and 

<name>dfs.name.dir</name>
<value>/home/vaibhav/Hadoop/dataNodeHadoopData/</value>

私は次のコマンドを使用しています-

bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data /home/vaibhav/Hadoop/dataNodeHadoopData

ファイルu.dataをローカルファイルシステムの場所から、Hdfsディレクトリとして指定したディレクトリにコピーします。しかし、これを行っても何も起こりません。エラーも何もありません。また、ファイルはhdsfにコピーされません。私は何か間違っていますか?許可の問題はありますか?

提案が必要です。

擬似分散シングルノードモードを使用しています。

また、関連するメモで、map reduceプログラムで、inputFilePathを/home/vaibhav/ml-100k/u.dataとして指すように構成を設定したことを確認したいと思います。したがって、指定された場所からhdfsにファイルを自動的にコピーしませんか?

11
Kumar Vaibhav

私は信じている dfs.data.dirおよびdfs.name.dirは、2つの異なる既存のディレクトリを指す必要があります。さらに、構成内のディレクトリーを変更した後に、namenode FS=をフォーマットしたことを確認してください。

HDFSへのコピー中に、ターゲットを誤って指定しています。ローカルファイルをHDFSにコピーするための正しい構文は次のとおりです。

bin/hadoop dfs -copyFromLocal <local_FS_filename> <target_on_HDFS>

例:

bin/hadoop dfs -copyFromLocal /home/vaibhav/ml-100k/u.data my.data

これにより、ファイルが作成されますmy.dataは、HDFSのユーザーのホームディレクトリにあります。ファイルをHDFSにコピーする前に、ディレクトリの内容のリストとディレクトリの作成を最初にマスターしてください。

20
harpun