Cloudera CDHリポジトリを使用して、CentOS上に単一ノードのHadoop環境を構築しました。ローカルファイルをHDFSにコピーする場合、次のコマンドを使用しました。
Sudo -u hdfs hadoop fs -put /root/MyHadoop/file1.txt /
しかし、結果は私を落ち込ませました:
put: '/root/MyHadoop/file1.txt': No such file or directory
このファイルが存在すると確信しています。
助けてください、ありがとう!
ユーザーhdfs
として、/root/
(ローカルhdd内)へのアクセス権がありますか?通常はそうしません。 file1.txt
をhdfs
ユーザーが読み取り権を持つ場所にコピーする必要があります。
試してください:
cp /root/MyHadoop/file1.txt /tmp
chown hdfs:hdfs /tmp/file1.txt
Sudo -u hdfs hadoop fs -put /tmp/file1.txt /
---編集:
私は同じ状況でしたが、ここに私の解決策があります:
HADOOP_USER_NAME=hdfs hdfs fs -put /root/MyHadoop/file1.txt /
利点:
Sudo
は必要ありません。usig:$ hadoop fs -mkdir your_dir
でHDFSにディレクトリを作成し、それを$ hadoop fs -put /root/MyHadoop/file1.txt your_dir
に入れてみてください