10

webhdfs を使用して Hadoop hdfs に 28 GB のファイルをロードしていますが、ロードに約 25 分かかります。

hdfs put を使用して同じファイルをロードしようとしましたが、6 分ほどかかりました。なぜこんなにも性能に差が出るのか?

おすすめの使い方は?誰かが説明したり、良いリンクに案内したりできますか?それは本当に役に立ちます.

私たちの下に、私が使用しているコマンドがあります

curl -i --negotiate -u: -X PUT "http://$hostname:$port/webhdfs/v1/$destination_file_location/$source_filename.temp?op=CREATE&overwrite=true"

これは、次のステップでデータを書き込むために使用するデータノード アドレスにリダイレクトされます。

4

4 に答える 4

17

Hadoop は、HDFS にアクセスするいくつかの方法を提供します

以下のすべてが、ファイルシステムのほぼすべての機能をサポートしています -

1. FileSystem (FS) シェル コマンド: Hadoop ファイル システム操作、およびローカル FS、HFTP FS、S3 FS など、Hadoop がサポートする他のファイル システムへの簡単なアクセスを提供します。
これには、 hadoop クライアントをインストールする必要があり、クライアントはブロックを 1 つのデータ ノードに直接書き込む必要があります。Hadoop のすべてのバージョンが、ファイルシステム間でコピーするためのすべてのオプションをサポートしているわけではありません。

2. WebHDFS: これは、クライアントが Hadoop をインストールせずに複数の言語から Hadoop にアクセスできるようにするパブリック HTTP REST API を定義します。利点は、言語に依存しない方法 (curl、php など) です。
WebHDFS はクラスターのすべてのノードにアクセスする必要があり、一部のデータが読み取られると、ソース ノードから直接送信されますが、**http のオーバーヘッドがあります** (1)FS シェルは非依存的に動作し、異なる Hadoop クラスターで問題はありませんおよびバージョン。

3.HttpFS。ファイアウォールの背後にあるクラスター内の HDFS にデータを読み書きします。単一ノードは、すべてのデータが転送されるゲートウェイ ノードとして機能し、パフォーマンスに関しては、これはさらに遅くなる可能性がありますが、パブリック ソースから安全なクラスターにデータをプルする必要がある場合に適しています。

したがって、正しく選択してください!.. 上の選択肢が利用できない場合は、リストの下に行くことが常に代替手段になります。

于 2015-07-23T08:26:58.833 に答える
9

Hadoop は、ファイルやディレクトリの作成、名前変更、削除、ファイルのオープン、読み取り、書き込みなどのファイル システム操作をサポートする FileSystem Shell API を提供します。FileSystem シェルは、Java FileSystem クラスを使用して FileSystem 操作を提供する Java アプリケーションです。FileSystem Shell API は、操作のために RPC 接続を作成します。

クライアントが Hadoop クラスター内にある場合、これは便利です。これは、hdfsURI スキームを使用して Hadoop 分散ファイル システムに接続し、クライアントが直接 RPC 接続を確立してデータを HDFS に書き込むためです。

これは、Hadoop クラスター内で実行されるアプリケーションには適していますが、ディレクトリを作成してそのディレクトリにファイルを書き込んだり、HDFS に保存されているファイルのコンテンツを読み取ったりする必要がある場合など、外部アプリケーションが HDFS を操作する必要がある場合があります。Hortonworks は、WebHDFS と呼ばれる標準の REST 機能に基づいて、これらの要件をサポートする API を開発しました。

WebHDFS は、外部アプリケーションが HTTP 接続を介して DistributedFileSystem に接続できる REST API 機能を提供します。外部アプリケーションが Java でも PHP でも構いません。

WebHDFS の概念は、GET、PUT、POST、DELETE などの HTTP 操作に基づいています。OPEN、GETFILESTATUS、LISTSTATUS などの操作は HTTP GET を使用し、CREATE、MKDIRS、RENAME、SETPERMISSIONS などの操作は HTTP PUT に依存しています。

HTTP 経由で HDFS への安全な読み書きアクセスを提供します。これは基本的に、HFTP (HTTP 経由の読み取り専用アクセス) および HSFTP (HTTPS 経由の読み取り専用アクセス) の代替として意図されています。URIwebhdfsスキームを使用して分散ファイル システムに接続しました。

クライアントが Hadoop クラスターの外部にあり、HDFS にアクセスしようとしている場合。それには WebHDFS が便利です。また、Hadoop クラスターの 2 つの異なるバージョンを接続しようとしている場合、WebHDFS は REST API を使用しているため、MapReduce または HDFS のバージョンに依存しないため便利です。

于 2015-07-23T08:57:36.730 に答える