首頁(yè)技術(shù)文章正文

HDFS分布式文件系統(tǒng)的優(yōu)點(diǎn)缺點(diǎn)有哪些?

更新時(shí)間:2020-12-16 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

  隨著互聯(lián)網(wǎng)數(shù)據(jù)規(guī)模的不斷增大,對(duì)文件存儲(chǔ)系統(tǒng)提出了更高的要求,需要更大的容量、更好的性能以及安全性更高的文件存儲(chǔ)系統(tǒng),與傳統(tǒng)分布式文件系統(tǒng)一樣,HDFS分布式文件系統(tǒng)也是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與節(jié)點(diǎn)相連,但也有傳統(tǒng)分布式文件系統(tǒng)的優(yōu)點(diǎn)和缺點(diǎn)。

  優(yōu)點(diǎn)

  (1)高容錯(cuò)

  HDFS是可以由成百上千臺(tái)服務(wù)器機(jī)器組成,每個(gè)服務(wù)器機(jī)器存儲(chǔ)文件系統(tǒng)數(shù)據(jù)的一部分。HDFS中的副本機(jī)制會(huì)自動(dòng)把數(shù)據(jù)保存多個(gè)副本,DataNode節(jié)點(diǎn)周期性地向NameNode發(fā)送心跳信號(hào),當(dāng)網(wǎng)絡(luò)發(fā)生異常,可能導(dǎo)致DataNode與NameNode失去通訊,NameNode和DataNode通過(guò)心跳檢測(cè)機(jī)制,發(fā)現(xiàn)DataNode宕機(jī),DataNode中副本丟失,HDFS則會(huì)從其他DataNode上面的副本自動(dòng)恢復(fù),所以HDFS具有高的容錯(cuò)性。

  (2)流式數(shù)據(jù)訪問(wèn)

  HDFS的數(shù)據(jù)處理規(guī)模比較大,應(yīng)用程序一次需要訪問(wèn)大量的數(shù)據(jù),同時(shí)這些應(yīng)用程序一般都是批量的處理數(shù)據(jù),而不是用戶交互式處理,所以應(yīng)用程序能以流的形式訪問(wèn)數(shù)據(jù)集,請(qǐng)求訪問(wèn)整個(gè)數(shù)據(jù)集要比訪問(wèn)一條記錄更加高效。

  (3)支持超大文件

  HDFS分布式文件系統(tǒng)具有很大的數(shù)據(jù)集,旨在可靠的大型集群上存儲(chǔ)超大型文件(GB、TB、PB級(jí)別的數(shù)據(jù)),它將每個(gè)文件切分成多個(gè)小的數(shù)據(jù)塊進(jìn)行存儲(chǔ),除了最后一個(gè)數(shù)據(jù)塊之外的所有數(shù)據(jù)塊大小都相同,塊的大小可以在指定的配置文件中進(jìn)行修改,在Hadoop2.x版本中默認(rèn)大小是128M。

  (4)高數(shù)據(jù)吞吐量

  HDFS采用的是“一次寫入,多次讀取”這種簡(jiǎn)單的數(shù)據(jù)一致性模型,在HDFS中,一個(gè)文件一旦經(jīng)過(guò)創(chuàng)建、寫入、關(guān)閉后,一旦寫入就不能進(jìn)行修改了,只能進(jìn)行追加,這樣保證了數(shù)據(jù)的一致性,也有利于提高吞吐量。

  (5)可構(gòu)建在廉價(jià)的機(jī)器上

  Hadoop的設(shè)計(jì)對(duì)硬件要求低,無(wú)需構(gòu)建在昂貴的高可用性機(jī)器上,因?yàn)樵贖DFS設(shè)計(jì)中充分考慮到了數(shù)據(jù)的可靠性、安全性和高可用性。

  缺點(diǎn)

  (1)高延遲

  HDFS不適用于低延遲數(shù)據(jù)訪問(wèn)的場(chǎng)景,例如:毫秒級(jí)實(shí)時(shí)查詢。

  (2)不適合小文件存取場(chǎng)景

  對(duì)于Hadoop系統(tǒng),小文件通常定義為遠(yuǎn)小于HDFS的數(shù)據(jù)塊大小(128MB)的文件,由于每個(gè)文件都會(huì)產(chǎn)生各自的元數(shù)據(jù),Hadoop通過(guò)NameNode來(lái)存儲(chǔ)這些信息,若小文件過(guò)多,容易導(dǎo)致NameNode存儲(chǔ)出現(xiàn)瓶頸。

  (3)不適合并發(fā)寫入

  HDFS目前不支持并發(fā)多用戶的寫操作,寫操作只能在文件末尾追加數(shù)據(jù)。



猜你喜歡:

什么是數(shù)據(jù)倉(cāng)庫(kù)?Hive數(shù)據(jù)倉(cāng)庫(kù)特點(diǎn)簡(jiǎn)介

Linux系統(tǒng)如何配置虛擬機(jī)網(wǎng)絡(luò)?

黑馬程序員大數(shù)據(jù)培訓(xùn)課程 

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!