Thrift:node
由于Hadoop文件系统的接口是经过JAVAApi提供的,因此其余非Java应用程序访问Hadoop文件系统会比较麻烦。编程
Thriftfs定制功能模块中ThriftApi经过把hadoop文件系统包装成一个ApacheThrift服务来弥补这个不足,从而使任何具备Thrift绑定的语言都能轻松地与Hadoop文件系统进行交互。服务器
C语言:框架
Hadoop提供了一个名为LibHDFS的C语言库,该语言库是JavaFileSystem接口类的一个镜像(它被编写成访问HDFS的C语言库,但它其实能够访问Hadoop文件系统)。它可使用Java原生接口(JavaNativeInterface,JNI)调用Java文件系统客户端。编程语言
C语言API与Java的API很是类似,但它的开发通常滞后于JavaApi,所以目前一些新的特性可能还不支持。工具
注:Hadoop中的RPC接口是基于Hadoop的Writable接口开发的,并以Java为中心开发语言。从此,Hadoopoop
还将采用跨语言的AvroRPC框架,该框架容许使用除了Java之外的其余语言编写的HDFS客户端。spa
FUSE:操作系统
用户控制文件系统(FileSysteminUserspace,FUSE)容许把按照用户空间实现的文件系统整合成一个Unix文 件系统。经过使用Hadoop的Fuse-DFS功能模块,任意一个Hadoop文件系统(通常为HDFS)都可以做为接口
一个标准文件系统进行挂载。随后即可以使用Unix工具(如ls和cat)与该文件系统交互,还能够经过任意一种
编程语言调用POSIX库来访问文件系统。
Fuse-DFS是用C语言实现的,调用libhdfs并做为访问HDFS的接口,关于如何编译和运行Fuse-DFS的文档,
能够在Hadoop发行版本的src/contrib/fuse-dfs目录中找到。
WebDAV:
WebDAV扩展了HTTP,并支持文件编辑和文件更新。在大部分操做系统中,WebDAV共享都可以做为
文件系统进行挂载,由此经过WebDAV来向外提供HDFS(或其余Hadoop文件系统的访问接口,并将 HDFS做为一个标准文件系统进行访问)。
其余HDFS接口:
HDFS有2种特定的接口:
HTTP:
HDFS定义了一个以HTTP方式检索目录列表和数据的只读接口。
嵌入在namenode中的Web服务器(运行在50070端口上)以XML
格式提供目录列表服务,而嵌入在datanode的Web服务器(运行
在50075端口)提供文件数据传输服务。该协议并不绑定于某个
特定的HDFS版本,由此用户能够利用HTTP协议编写从运行不一样
版本的HadoopHDFS集群中读取数据的客户端。HftFileSystem就
是其中一种:一个经过HTTP协议与HDFS交互的Hadoop文件系统
接口(HsftpFileSystem是HTTPS的变种).
FTP:
HDFS还有一个FTP接口,该接口运行使用FTP协议与HDFS进行交 互,该接口很方便,它使用现有FTP客户端与HDFS进行数据传输。
请不要把HDFS的FTP接口与FTPFileSystem混为一谈,由于该接口
能够将任意FTP服务器展现为Hadoop文件系统。
Name:Xr
Date:2014-03-13 23:29