システムでHadoop HDFSディレクトリを見つける方法次のコマンドを実行するにはこれが必要です-
hadoop dfs -copyFromLocal <local-dir> <hdfs-dir>
このコマンドでは、hdfs-dirを認識しません。
役に立つかどうかはわかりませんが、次のコマンドを実行してこの出力を得ました-
hdfs dfs -ls
-rw-r--r-- 3 popeye hdfs 127162942 2016-04-01 19:47 .
Hdfs-site.xmlで、次のエントリが見つかりました-
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop/hdfs/data</value>
<final>true</final>
</property>
次のコマンドを実行しようとしましたが、エラーが発生します-
[root@sandbox try]# hdfs dfs -copyFromLocal 1987.csv /hadoop/hdfs/data
copyFromLocal: `/hadoop/hdfs/data': No such file or directory
参考までに、これらすべてをAzureサーバー上のhortonworksサンドボックスで実行しています。
あなたのアプローチが間違っているか、理解が間違っている可能性があります
dfs.datanode.data.dir
は、データブロックを保存する場所です
hdfs dfs -ls /
と入力すると、hdfsのディレクトリのリストが表示されます。次に、-copyFromLocal
または-put
を使用して特定のディレクトリにローカルからhdfsにファイルを転送するか、-mkdir
を使用して新しいディレクトリを作成できます。
詳細については、以下のリンクを参照してください
http://hadoop.Apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html
実行する場合:
hdfs dfs -copyFromLocal foo.txt bar.txt
ローカルファイルfoo.txtが独自のhdfsディレクトリにコピーされます/user/popeye/bar.txt
(ここでpopeye
はユーザー名です。)その結果、以下は同じことを実現します。
hdfs dfs -copyFromLocal foo.txt /user/popeye/bar.txt
ファイルをhdfsにコピーする前に、まず親ディレクトリを作成してください。この「ホーム」ディレクトリにファイルを配置する必要はありませんが、(1)あらゆる種類のファイルで「/」が乱雑にならないようにし、(2)この規則に従うと他のユーザーとの競合を防ぐことができます。
最初の答えによると、Hadoop 1.x
について詳しく説明しています-
このスクリプトを擬似分散モデルで実行していると仮定すると、おそらくユーザーの1つまたは2つのリスト(NameNodes)が表示されます-
完全な配布モデルでは、最初にこれらのことを実行する管理者権限があり、NameNodes(users)のリストがN個あります。
だから今、私たちのポイントに移動します-
最初にHadoopホームディレクトリにアクセスし、そこからこのスクリプトを実行します-
bin/hadoop fs -ls /
結果は次のようになります-
drwxr-xr-x - xuiob78126arif supergroup 0 2017-11-30 11:20 /user
xuiob78126arif
は私の名前node(master/user)で、NameNode(user)ディレクトリは-
/user/xuiob78126arif/
これでブラウザにアクセスしてアドレスを検索できます-
http://xuiob78126arif:50070
そこからCluster Summary, NameNode Storage
などを取得できます。
注:スクリプトは、少なくとも1つのファイルまたはディレクトリがDataNodeに存在する場合、1つの条件でのみ結果を提供します。
ls: Cannot access .: No such file or directory.
そのため、その場合は最初にbin/hadoop fs -put <source file full path>
でファイルを配置します
そして、bin/hadoop fs -ls /
スクリプトを実行します。
そして今、私はあなたがあなたの問題について少しを得たことを願っています、ありがとう。