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