Hadoop HDFS over HTTP - 文档集

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 客户端文件系统实现可用于通过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' 以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 PUT 'http://httpfs-host:14000/webhdfs/v1/user/foo/bar?op=MKDIRS&user.name=foo' 创建HDFS目录 /user/foo/bar

用户与开发者文档