Hadoop文件系統(tǒng)全家桶
Hadoop有一個抽象的文件系統(tǒng)概念,HDFS只是其中一個實(shí)現(xiàn)檀咙。Java抽象類org.apache.hadoop.fs.FileSystem
定義了Hadoop中文件系統(tǒng)的客戶端接口璃诀,該抽象類有幾個具體的實(shí)現(xiàn)劣欢。
Hadoop文件系統(tǒng)
Local
URI方案:file
Java實(shí)現(xiàn):org.apache.hadoop.fs.LocalFileSystem
描述:使用客戶端校驗(yàn)的本地磁盤文件系統(tǒng)裁良。
HDFS
URI方案:hdfs
Java實(shí)現(xiàn):org.apache.hadoop.hdfs.DistributedFileSystem
描述:Hadoop的分布式文件系統(tǒng)凿将。將HDFS設(shè)計成與MapReduce結(jié)合使用,可以實(shí)現(xiàn)高性能价脾。
WebHDFS
URI方案:Webhdfs
Java實(shí)現(xiàn):org.apache.hadoop.hdfs.web.WebHdfsFileSystem
描述:基于HTTP的文件系統(tǒng)牧抵,提供對HDFS的認(rèn)證讀/寫訪問。
Secure WebHDFS
URI方案:swebhdfs
Java實(shí)現(xiàn):org.apache.hadoop.hdfs.web.SWebHdfsFileSystem
描述:WebHDFS的HTTPS版本。
HAR
URI方案:har
Java實(shí)現(xiàn):org.apache.hadoop.fs.HarFileSystem
描述:一個構(gòu)建在其他文件系統(tǒng)上用于文件存檔的文件系統(tǒng)犀变。Hadoop存檔文件系統(tǒng)通常用于將HDFS中的多個文件打包成一個存檔文件妹孙,以減少namenode的內(nèi)存使用。使用Hadoop的achive命令來創(chuàng)建HAR文件获枝。
View
URI方案:viewfs
Java實(shí)現(xiàn):org.apache.hadoop.viewfs.ViewFileSystem
描述:針對其他Hadoop文件系統(tǒng)的客戶端掛載表蠢正。通常用于聯(lián)邦namenode創(chuàng)建掛載點(diǎn)。
FTP
URI方案:ftp
Java實(shí)現(xiàn):org.apache.hadoop.fs.ftp.FTPFileSystem
描述:由FTP服務(wù)器支持的文件系統(tǒng)省店。
S3
URI方案:S3a
Java實(shí)現(xiàn):org.apache.hadoop.fs.s3a.S3AFileSystem
描述:由Amazon S3支持的文件系統(tǒng)。
Azure
URI方案:wasb
Java實(shí)現(xiàn):org.apache.hadoop.fs.azure.NativeAzureFileSystem
描述:由Microsoft Azure支持的文件系統(tǒng)懦傍。
Swift
URI方案:swift
Java實(shí)現(xiàn):org.apache.hadoop.fs.swift.snative.SwiftNativeFileSystem
描述:由OpenStack Swift支持的文件系統(tǒng)雹舀。
接口
1. HTTP
Hadoop以Java API的方式提供文件系統(tǒng)訪問接口,非Java開發(fā)人員的應(yīng)用訪問HDFS很不方便粗俱。Hadoop中由WebHDFS協(xié)議提供的HTTP REST API則脫離了編程語言的限制说榆。但是,HTTP接口比Java客戶端要慢很多源梭。盡量不要用它來傳輸比較大的數(shù)據(jù)娱俺。
2. C語言
Hadoop提供了一個為libhdfs的C語言庫。這個C語言API和Java的API非常相似废麻,但它的開發(fā)滯后于Java API荠卷,一些新特性得不到及時的支持。
3. NFS
使用Hadoop的NFSv3網(wǎng)關(guān)可以將HDFS掛載為本地客戶端的文件系統(tǒng)烛愧。掛載后便可以使用Unix系統(tǒng)的上命令(如ls和cat)與該文件系統(tǒng)交互油宜。實(shí)際上他還是HDFS,修改文件只能通過追加的方式怜姿,不能隨機(jī)修改慎冤。
4. FUSE
用戶空間文件系統(tǒng)(FUSE),由Hadoop的Fuse-DFS模塊支持沧卢。不做解釋了蚁堤,需要請查詢維基百科。Fuse-DFS相比于3中的NFS但狭,NFS方案更優(yōu)披诗。