更新時(shí)間:2020-12-16 來源:黑馬程序員 瀏覽量:
隨著互聯(lián)網(wǎng)數(shù)據(jù)規(guī)模的不斷增大,對(duì)文件存儲(chǔ)系統(tǒng)提出了更高的要求,需要更大的容量、更好的性能以及安全性更高的文件存儲(chǔ)系統(tǒng),與傳統(tǒng)分布式文件系統(tǒng)一樣,HDFS分布式文件系統(tǒng)也是通過計(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通過心跳檢測機(jī)制,發(fā)現(xiàn)DataNode宕機(jī),DataNode中副本丟失,HDFS則會(huì)從其他DataNode上面的副本自動(dòng)恢復(fù),所以HDFS具有高的容錯(cuò)性。
(2)流式數(shù)據(jù)訪問
HDFS的數(shù)據(jù)處理規(guī)模比較大,應(yīng)用程序一次需要訪問大量的數(shù)據(jù),同時(shí)這些應(yīng)用程序一般都是批量的處理數(shù)據(jù),而不是用戶交互式處理,所以應(yīng)用程序能以流的形式訪問數(shù)據(jù)集,請(qǐng)求訪問整個(gè)數(shù)據(jù)集要比訪問一條記錄更加高效。
(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采用的是“一次寫入,多次讀取”這種簡單的數(shù)據(jù)一致性模型,在HDFS中,一個(gè)文件一旦經(jīng)過創(chuàng)建、寫入、關(guān)閉后,一旦寫入就不能進(jìn)行修改了,只能進(jìn)行追加,這樣保證了數(shù)據(jù)的一致性,也有利于提高吞吐量。
(5)可構(gòu)建在廉價(jià)的機(jī)器上
Hadoop的設(shè)計(jì)對(duì)硬件要求低,無需構(gòu)建在昂貴的高可用性機(jī)器上,因?yàn)樵贖DFS設(shè)計(jì)中充分考慮到了數(shù)據(jù)的可靠性、安全性和高可用性。
缺點(diǎn)
(1)高延遲
HDFS不適用于低延遲數(shù)據(jù)訪問的場景,例如:毫秒級(jí)實(shí)時(shí)查詢。
(2)不適合小文件存取場景
對(duì)于Hadoop系統(tǒng),小文件通常定義為遠(yuǎn)小于HDFS的數(shù)據(jù)塊大小(128MB)的文件,由于每個(gè)文件都會(huì)產(chǎn)生各自的元數(shù)據(jù),Hadoop通過NameNode來存儲(chǔ)這些信息,若小文件過多,容易導(dǎo)致NameNode存儲(chǔ)出現(xiàn)瓶頸。
(3)不適合并發(fā)寫入
HDFS目前不支持并發(fā)多用戶的寫操作,寫操作只能在文件末尾追加數(shù)據(jù)。
什么是數(shù)據(jù)倉庫?Hive數(shù)據(jù)倉庫特點(diǎn)簡介