web-dev-qa-db-ja.com

システムでHadoop hdfsディレクトリを見つける方法

システムで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サンドボックスで実行しています。

7
N..

あなたのアプローチが間違っているか、理解が間違っている可能性があります

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

11
BruceWayne

実行する場合:

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)この規則に従うと他のユーザーとの競合を防ぐことができます。

1
michael

最初の答えによると、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 /スクリプトを実行します。

そして今、私はあなたがあなたの問題について少しを得たことを願っています、ありがとう。

1
ArifMustafa