理解HDFS高可用性架構

2022-08-09 07:00:17 字數 1119 閱讀 1947

在hadoop1.x版本的時候,namenode存在著單點失效的問題。如果namenode失效了,那麼所有的基於hdfs的客戶端——包括mapreduce作業均無法讀,寫或列檔案,因為namenode是唯一儲存元資料與檔案到資料塊對映的地方。而從乙個失效的namenode中恢復的步驟繁多,系統恢復時間太長,也會影響到日常的維護。

hadoop的2.x版本在hdfs中增加了對高可用性的支援來解決單點失效的問題。

這一實現中簡單說就是配置了一對活動-備用namenode。當活動namenode失效的時候,備用namenode就會接管它的任務並開始服務於來自客戶端的請求,不會有任何明顯中斷。

下面我們來看一下hdfs實現高可用性的架構圖:

從架構圖我們可以看到:

active namenode 和 standby namenode:兩台 namenode 形成互備,一台處於 active 狀態,為主 namenode,另外一台處於 standby 狀態,為備 namenode,只有主 namenode 才能對外提供讀寫服務。

主備切換控制器又稱故障轉移控制器,zkfailovercontroller:zkfailovercontroller 作為獨立的程序執行,對 namenode 的主備切換進行總體控制。zkfailovercontroller 能及時檢測到namenode 的健康狀況,在主namenode 故障時借助 zookeeper 實現自動的主備選舉和切換。

zookeeper 集群:為主備切換控制器提供主備選舉支援。

共享儲存系統:共享儲存系統是實現namenode 的高可用最為關鍵的部分,共享儲存系統儲存了 namenode 在執行過程中所產生的 hdfs 的元資料。主namenode和備namenode 通過共享儲存系統實現元資料同步。在進行主備切換的時候,新的主 namenode 在確認元資料完全同步之後才能繼續對外提供服務。

datanode 節點:除了通過共享儲存系統共享 hdfs 的元資料資訊之外,主 namenode 和備 namenode 還需要共享 hdfs 的資料塊和 datanode 之間的對映關係。datanode 會同時向主 namenode 和備 namenode 上報資料塊的位置資訊。

架構要素 高可用性

實現高可用架構的主要手段是資料和服務的冗餘備份及失效轉移。高可用的應用 應用層主要處理 應用的業務邏輯,因此也稱業務邏輯層,應用的乙個顯著特點是應用的無狀態。所謂無狀態的應用是指應用伺服器不儲存業務的上下文資訊,而僅根據每次請求提交的資料進行相應的業務邏輯處理,多個服務例項 伺服器 之間完全對等,請...

HDFS如何保證高可用性

1 實現方式 namenode冗餘備份 2 具體過程 多個節點作為namenode,其中乙個處於active狀態,其它處於standby狀態。目前的實現有乙個條件,需要借助類似nfs這樣的分布式共享儲存系統,而且節點要能夠訪問這一系統。在active的namespace上的每個改變,需要同步到處於s...

HDFS高可用性HA架構原理及環境搭建

1 元資料同步 hdfs高可用性保證兩個namenode記憶體中儲存的檔案系統元資料是一致的。namenode的啟動過程 乙個namenode啟動時,讀取fsimage和edits檔案,讀取後會生成新的fsimage和edits檔案,另乙個namenode同樣需要去讀取這兩個檔案,變化後的edits...