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

全國咨詢/投訴熱線:400-618-4000

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

更新時間:2020年11月12日18時35分 來源:傳智播客 瀏覽次數(shù):

  在HDFS分布式文件系統(tǒng)中,NameNode是系統(tǒng)的核心節(jié)點(diǎn),它存儲了各類元數(shù)據(jù)信息,并負(fù)責(zé)管理文件系統(tǒng)的命名空間和客戶端對文件的訪問。但是,在Hadoop1.0版本中,NameNode只有一個,一旦這個NameNode發(fā)生故障,就會導(dǎo)致整個Hadoop集群不可用,也就是發(fā)生了單點(diǎn)故障問題。

  為了解決單點(diǎn)故障問題,Hadoop2.0中的HDFS中增加了對高可用的支持。在高可用的HDFS集群中,通常有兩臺或者兩臺以上的機(jī)器充當(dāng)NameNode,在任意時間內(nèi),都要保證至少有一臺機(jī)器處于活動(Active)狀態(tài),一臺機(jī)器處于備用(Standby)狀態(tài)。處于活動狀態(tài)的NameNode負(fù)責(zé)處理客戶端請求,而處于備用狀態(tài)的NameNode則處于“隨時待命”狀態(tài)。一旦處于活動狀態(tài)NameNode節(jié)點(diǎn)發(fā)生故障,那么處于備用狀態(tài)的NameNode會立即接管它的任務(wù)并開始處理客戶端請求,保證業(yè)務(wù)不會出現(xiàn)明顯中斷,不影響系統(tǒng)的正常對外服務(wù)。接下來,通過一張圖來描述HDFS的高可用架構(gòu),如圖1所示。

  圖1 HDFS的高可用架構(gòu)

  圖1所示的高可用架構(gòu)中,共包含了兩個NameNode,其中一個處于活動狀態(tài),一個處于備用狀態(tài),活躍狀態(tài)的NameNode將更新的數(shù)據(jù)寫入共享存儲系統(tǒng)中,備用狀態(tài)的NameNode會一直監(jiān)聽共享存儲系統(tǒng),一旦發(fā)現(xiàn)有新的數(shù)據(jù),就會立即從共享存儲系統(tǒng)中將這些數(shù)據(jù)加載到自己內(nèi)存中,從而保證與活躍狀態(tài)的數(shù)據(jù)同步。

  Zookeeper是一種在HDFS高可用集群中集中提供自動故障轉(zhuǎn)移功能的服務(wù),它為每個NameNode都分配了一個故障恢復(fù)控制器(Zookeeper Failover Controller,簡稱ZKFC),該控制器用于監(jiān)控NameNode的健康狀態(tài),并通過“心跳”方式定期和Zookeeper保持通信。一旦NameNode發(fā)生故障,Zookeeper會通知備用狀態(tài)的NameNode啟動,使其成為活動狀態(tài)去處理客戶端請求,從而實(shí)現(xiàn)高可用。


猜你喜歡

簡單介紹YARN資源管理框架的體系結(jié)構(gòu)【大數(shù)據(jù)文章】

Znode儲存結(jié)構(gòu)是怎樣的?節(jié)點(diǎn)類型有幾種?

0 分享到:
和我們在線交談!