Hadoop HDFS overHTTP-Documentation Sets2.4.1

HttpFs是一个提供REST HTTP的方式支持所有的HDFS文件系统操作的方式。它与webhdfsREST HTTP API彼此协作。

HttpFS可以被用来在运行不同版本的Hadoop集群间传递数据(克服了RPC版本不同的问题),例如使用HadoopDistCP工具。

HttpFS可以被用来访问有防火墙的集群中的HDFS(HttpFS服务器扮演一个gateway的角色,只有这个gateway被允许穿过防火墙进入集群)。

HttpFS使用HTTP工具(像curl或者wget)或者其他语言的HTTP类库访问HDFS中的数据。

Webhdfs客户端文件系统可以使用Hadoop文件系统命令行工具(hadoopfs)访问HttpFS,在java 应用程序中可以使用Hadoop文件系统的java API访问。

HttpFS内置了安全机制,支持Hadoop pseudo 验证,HTTP SPNEGO Kerberos 验证,或者其他的可拔插的认证机制。它也提供Hadoop代理用户的支持。

How does HttpFs works?

HttpFS是Hadoop NameNode中一个单独的服务。

HttpFS本身是一个java web应用,它运行在提前配置好的绑定了HttpFs的tomcat的二进制发行版。

HttpFS HTTP web服务是调用HTTPREST,HTTP REST映射到一个HDFS文件系统操作。例如,使用curlUnix命令:

1.      $ curlhttp://httpfs-host:14000/webhdfs/v1/user/foo/README.txt

返回HDFS /user/foo/README.txt文件的内容。

2.      $ curlhttp://httpfs-host:14000/webhdfs/v1/user/foo?op=list

以JSON格式返回HDFS /user/foo目录中的内容。

3.      $ curl -X POSThttp://httpfs-host:14000/webhdfs/v1/user/foo/bar?op=mkdirs

创建HDFS中/user/foo/bar文件夹。

How HttpFS and Hadoop HDFS Proxydiffer?

HttpFS受Hadoop HDFS代理的启发。

HttpFS可以被认为是Hadoop HDFS 代理的完全重写。

Hadoop HDFS代理提供了一部分文件系统的操作(只有读取信息的操作),HttpFS提供了所有文件系统操作的支持。

HttpFS用一个干净的HTTP REST API使其用HTTP工具使用时更直观。

HttpFS支持Hadoop pseudo 认证,Kerberos SPNEGOS 认证和Hadoop代理用户。Hadoop HDFS 代理不支持。

User and DeveloperDocumentation