更新時間:2020-12-16 來源:黑馬程序員 瀏覽量:
隨著互聯(lián)網(wǎng)數(shù)據(jù)規(guī)模的不斷增大,對文件存儲系統(tǒng)提出了更高的要求,需要更大的容量、更好的性能以及安全性更高的文件存儲系統(tǒng),與傳統(tǒng)分布式文件系統(tǒng)一樣,HDFS分布式文件系統(tǒng)也是通過計算機網(wǎng)絡與節(jié)點相連,但也有傳統(tǒng)分布式文件系統(tǒng)的優(yōu)點和缺點。
優(yōu)點
(1)高容錯
HDFS是可以由成百上千臺服務器機器組成,每個服務器機器存儲文件系統(tǒng)數(shù)據(jù)的一部分。HDFS中的副本機制會自動把數(shù)據(jù)保存多個副本,DataNode節(jié)點周期性地向NameNode發(fā)送心跳信號,當網(wǎng)絡發(fā)生異常,可能導致DataNode與NameNode失去通訊,NameNode和DataNode通過心跳檢測機制,發(fā)現(xiàn)DataNode宕機,DataNode中副本丟失,HDFS則會從其他DataNode上面的副本自動恢復,所以HDFS具有高的容錯性。
(2)流式數(shù)據(jù)訪問
HDFS的數(shù)據(jù)處理規(guī)模比較大,應用程序一次需要訪問大量的數(shù)據(jù),同時這些應用程序一般都是批量的處理數(shù)據(jù),而不是用戶交互式處理,所以應用程序能以流的形式訪問數(shù)據(jù)集,請求訪問整個數(shù)據(jù)集要比訪問一條記錄更加高效。
(3)支持超大文件
HDFS分布式文件系統(tǒng)具有很大的數(shù)據(jù)集,旨在可靠的大型集群上存儲超大型文件(GB、TB、PB級別的數(shù)據(jù)),它將每個文件切分成多個小的數(shù)據(jù)塊進行存儲,除了最后一個數(shù)據(jù)塊之外的所有數(shù)據(jù)塊大小都相同,塊的大小可以在指定的配置文件中進行修改,在Hadoop2.x版本中默認大小是128M。
(4)高數(shù)據(jù)吞吐量
HDFS采用的是“一次寫入,多次讀取”這種簡單的數(shù)據(jù)一致性模型,在HDFS中,一個文件一旦經(jīng)過創(chuàng)建、寫入、關閉后,一旦寫入就不能進行修改了,只能進行追加,這樣保證了數(shù)據(jù)的一致性,也有利于提高吞吐量。
(5)可構建在廉價的機器上
Hadoop的設計對硬件要求低,無需構建在昂貴的高可用性機器上,因為在HDFS設計中充分考慮到了數(shù)據(jù)的可靠性、安全性和高可用性。
缺點
(1)高延遲
HDFS不適用于低延遲數(shù)據(jù)訪問的場景,例如:毫秒級實時查詢。
(2)不適合小文件存取場景
對于Hadoop系統(tǒng),小文件通常定義為遠小于HDFS的數(shù)據(jù)塊大小(128MB)的文件,由于每個文件都會產(chǎn)生各自的元數(shù)據(jù),Hadoop通過NameNode來存儲這些信息,若小文件過多,容易導致NameNode存儲出現(xiàn)瓶頸。
(3)不適合并發(fā)寫入
HDFS目前不支持并發(fā)多用戶的寫操作,寫操作只能在文件末尾追加數(shù)據(jù)。