教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

HDFS存儲(chǔ)架構(gòu)中主從節(jié)點(diǎn)關(guān)系?工作原理是什么?

更新時(shí)間:2020年12月30日11時(shí)44分 來(lái)源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

  HDFS是一個(gè)分布式的文件系統(tǒng),相比普通的文件系統(tǒng)來(lái)說(shuō)更加復(fù)雜,因此在學(xué)習(xí)HDFS的操作之前有必要先來(lái)學(xué)習(xí)一下HDFS的存儲(chǔ)架構(gòu)。如圖1所示。

圖1 HDFS存儲(chǔ)架構(gòu)圖

  從圖1可以看出,HDFS采用主從架構(gòu)(Master/Slave架構(gòu))。HDFS集群分別是由一個(gè)NameNode和多個(gè)的 DataNode組成。其中,NameNode是HDFS集群的主節(jié)點(diǎn),負(fù)責(zé)管理文件系統(tǒng)的命名空間以及客戶端對(duì)文件的訪問(wèn);DataNode是集群的從節(jié)點(diǎn),負(fù)責(zé)管理它所在節(jié)點(diǎn)上的數(shù)據(jù)存儲(chǔ)。HDFS分布式文件系統(tǒng)中的NameNode和DataNode兩種角色各司其職,共同協(xié)調(diào)完成分布式的文件存儲(chǔ)服務(wù)。

  那么,NameNode是如何管理分布式文件系統(tǒng)的命名空間呢?其實(shí),在NameNode內(nèi)部是以元數(shù)據(jù)的形式,維護(hù)著兩個(gè)文件,分別是FsImage鏡像文件和EditLog日志文件。其中,F(xiàn)sImage鏡像文件用于存儲(chǔ)整個(gè)文件系統(tǒng)命名空間的信息,EditLog日志文件用于持久化記錄文件系統(tǒng)元數(shù)據(jù)發(fā)生的變化。當(dāng)NameNode啟動(dòng)的時(shí)候,F(xiàn)sImage鏡像文件就會(huì)被加載到內(nèi)存中,然后對(duì)內(nèi)存里的數(shù)據(jù)執(zhí)行記錄的操作,以確保內(nèi)存所保留的數(shù)據(jù)處于最新的狀態(tài),這樣就加快了元數(shù)據(jù)的讀取和更新操作。

  隨著集群運(yùn)行時(shí)間長(zhǎng),NameNode中存儲(chǔ)的元數(shù)據(jù)信息越來(lái)越多,這樣就會(huì)導(dǎo)致EditLog日志文件越來(lái)越大。當(dāng)集群重啟時(shí),NameNode需要恢復(fù)元數(shù)據(jù)信息,首先加載上一次的FsImage鏡像文件,然后在重復(fù)EditLog日志文件的操作記錄,一旦EditLog日志文件很大,在合并的過(guò)程中就會(huì)花費(fèi)很長(zhǎng)時(shí)間,而且如果NameNode宕機(jī)就會(huì)丟失數(shù)據(jù)。為了解決這個(gè)問(wèn)題,HDFS中提供了Secondary NameNode(輔助名稱節(jié)點(diǎn)),它并不是要取代掉NameNode也不是NameNode的備份, 它的職責(zé)主要是是周期性的把NameNode中的EditLog日志文件合并到FsImage鏡像文件中,從而減小EditLog日志文件的大小,縮短集群重啟時(shí)間,并且也保證了HDFS系統(tǒng)的完整性。

  Namenode存儲(chǔ)的是元數(shù)據(jù)信息,元數(shù)據(jù)信息并不是真正的數(shù)據(jù),真正的數(shù)據(jù)是存儲(chǔ)在DataNode中。DataNode是負(fù)責(zé)管理它所在節(jié)點(diǎn)上的數(shù)據(jù)存儲(chǔ)。DataNode中的數(shù)據(jù)塊是以文件的類型存儲(chǔ)在磁盤中,其中包含兩個(gè)文件,一是數(shù)據(jù)本身(僅數(shù)據(jù)),二是每個(gè)數(shù)據(jù)塊對(duì)應(yīng)的一個(gè)元數(shù)據(jù)文件(包括數(shù)據(jù)長(zhǎng)度,塊數(shù)據(jù)校驗(yàn)和,以及時(shí)間戳)。



猜你喜歡:

怎樣使用Spark Shell來(lái)讀取HDFS文件?

HDFS是什么?HDFS的演變過(guò)程?

HDFS的高可用架構(gòu)是怎樣工作的?

傳智教育大數(shù)據(jù)培訓(xùn)課程

0 分享到:
和我們?cè)诰€交談!