Hadoop は、ファイルやディレクトリの作成、名前変更、削除、ファイルのオープン、読み取り、書き込みなどのファイル システム操作をサポートする FileSystem Shell API を提供します。FileSystem シェルは、Java FileSystem クラスを使用して FileSystem 操作を提供する Java アプリケーションです。FileSystem Shell API は、操作のために RPC 接続を作成します。
クライアントが Hadoop クラスター内にある場合、これは便利です。これは、hdfs
URI スキームを使用して 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 のバージョンに依存しないため便利です。