HDFS是Hadoop應用的主要分布式存儲。一個(gè)HDFS集群由一個(gè)管理文件系統元數據的NameNode,和存儲實(shí)際數據的一些Datanode組成。HDFS的架構在這里有詳細描述。這個(gè)用戶(hù)指南主要提供給需要跟HDFS集群打交道的用戶(hù)或者管理員。HDFS架構文章中的圖描繪了Namenode、Datanode和客戶(hù)端們之間的基本交互。本質(zhì)上,客戶(hù)端與Namenode通訊獲取或者修改文件的元數據,與 Datanode進(jìn)行實(shí)際的IO操作。
下面的列表應該是大多數用戶(hù)關(guān)心的HDFS突出特點(diǎn)。斜體字的術(shù)語(yǔ)將在后面詳細描述。
1)Hadoop,包括HDFS,非常適合廉價(jià)機器上的分布式存儲和分布式處理。它是容錯的、可伸縮的,并且非常易于擴展。并且,以簡(jiǎn)單性和適用性著(zhù)稱(chēng)的Map-Reduce是Hadoop不可或缺的組成部分。
2)HDFS的默認配置適合于大多數安裝的應用。通常情況下,只有在一個(gè)非常大規模的集群上才需要修改默認配置。
3)HDFS是用java編寫(xiě)的,支持大多數平臺。
4)支持shell命令行風(fēng)格的HDFS目錄交互。
5)Namenode和Datanode都內建了web服務(wù)器,可以方便地查看集群的狀態(tài)
6)HDFS經(jīng)常性地實(shí)現新的特性和改進(jìn),下面是HDFS中的一些有用特性的子集:
文件許可和授權
Rack awareness :當調度任務(wù)和分配存儲的時(shí)候將節點(diǎn)的物理位置考慮進(jìn)去。
Safemode(安全模式) :用于維護的一個(gè)管理狀態(tài)
fsck : 診斷文件系統的一個(gè)工具,用來(lái)查找丟失的文件或者block
Rebalancer :當數據在Datanode間沒(méi)有均勻分布的時(shí)候,用于重新平衡集群的工具
升級和回滾 :當Hadoop軟件升級,在升級遇到不可預期的問(wèn)題的時(shí)候,可以回滾到HDFS升級前的狀態(tài)
二級Namenode :幫助Namenode維持包含了HDFS修改的日志的文件(edits日志文件,下文談到)大小在限制范圍內。