HttpFS是一台提供REST HTTP网关的服务器,该网关支持所有HDFS文件系统操作(读取和写入)。并且可以与webhdfs REST HTTP API 互操作。
HttpFS可用于在运行不同版本Hadoop的群集之间传输数据(克服RPC版本问题),例如使用Hadoop DistCP。
HttpFS可用于访问防火墙后面的群集上的HDFS中的数据(HttpFS服务器充当网关,并且是唯一允许将防火墙穿过群集进入群集的系统)。
HttpFS可用于使用HTTP实用程序(例如curl和wget)和来自Java以外的其他语言的HTTP库Perl来访问HDFS中的数据。
所述webhdfs客户文件系统实现可以被用来访问HttpFS使用Hadoop的文件系统命令(hadoop的FS以及从使用Hadoop的文件系统的Java API的Java应用程序)行工具。
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目录。