HTTP経由Hadoop HDFS - ドキュメントセット

HttpFSは、すべてのHDFSファイルシステム操作(読み取りと書き込み)をサポートするREST HTTPゲートウェイを提供するサーバーです。そして、webhdfs REST HTTP APIと相互運用可能です。

HttpFSは、異なるバージョンのHadoopを実行するクラスタ間でデータ転送を行うために使用できます(RPCのバージョン管理の問題を克服)。たとえば、Hadoop DistCPを使用します。

HttpFSは、ファイアウォールの背後にあるクラスタ上のHDFS内のデータにアクセスするために使用できます(HttpFSサーバーはゲートウェイとして機能し、クラスタへのファイアウォールを通過することを許可される唯一のシステムです)。

HttpFSは、HTTPユーティリティ(curlやwgetなど)と他の言語(Java以外)からのHTTPライブラリPerlを使用して、HDFS内のデータにアクセスするために使用できます。

webhdfsクライアントファイルシステム実装を使用して、Hadoopファイルシステムコマンド(hadoop fs)ラインツールと、Hadoop FileSystem Java APIを使用してJavaアプリケーションからHttpFSにアクセスできます。

HttpFSには、Hadoop擬似認証とHTTP SPNEGO Kerberos、およびその他のプラグ可能な認証メカニズムをサポートする組み込みセキュリティがあります。また、Hadoopプロキシユーザーサポートも提供します。

HttpFSの動作方法

HttpFSは、Hadoop NameNodeとは別のサービスです。

HttpFS自体は、Java Jetty Webアプリケーションです。

HttpFS HTTP WebサービスAPIコールは、HDFSファイルシステム操作にマップされるHTTP RESTコールです。たとえば、curl Unixコマンドを使用すると

  • $ curl 'http://httpfs-host:14000/webhdfs/v1/user/foo/README.txt?op=OPEN&user.name=foo' は、HDFS /user/foo/README.txtファイルの内容を返します。

  • $ curl 'http://httpfs-host:14000/webhdfs/v1/user/foo?op=LISTSTATUS&user.name=foo' は、HDFS /user/fooディレクトリの内容をJSON形式で返します。

  • $ curl 'http://httpfs-host:14000/webhdfs/v1/user/foo?op=GETTRASHROOT&user.name=foo' は、/が暗号化ゾーンの場合、パス/user/foo/.Trashを返し、暗号化ゾーンの場合、パス/.Trash/fooを返します。詳細はこちら暗号化ゾーンのゴミ箱パスについて。

  • $ curl -X POST 'http://httpfs-host:14000/webhdfs/v1/user/foo/bar?op=MKDIRS&user.name=foo' は、HDFS /user/foo/barディレクトリを作成します。

ユーザーおよび開発者向けドキュメント