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 文件系统 Java API 的 Java 应用程序访问 HttpFS。
HttpFS 具有内置的安全功能,支持 Hadoop 伪身份验证和 HTTP SPNEGO Kerberos 以及其他可插拔身份验证机制。它还提供 Hadoop 代理用户支持。
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'
以 JSON 格式返回 HDFS /user/foo
目录的内容。
$ 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
目录。