理解HDFS高可用性架構
在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架構及原理架構
- Hadoop的HDFS架構入門Hadoop架構
- 構建高可用性、高效能和可擴充套件的Zabbix Server架構套件Server架構
- 淺析HDFS架構和設計架構
- 淺談hdfs架構與資料流架構
- hadoop 原始碼分析HDFS架構演進Hadoop原始碼架構
- 理解cassandra架構架構
- 重新理解架構架構
- HDFS架構指南(分散式系統Hadoop的檔案系統架構)架構分散式Hadoop
- HDFS1.x、2.x架構圖架構
- Apache Hadoop文件翻譯之一(HDFS架構)ApacheHadoop架構
- 高可用架構架構
- 三層架構理解架構
- MySQL 高可用架構之 MMM 架構MySql架構
- 分散式架構的高效能與可用性分散式架構
- 架構師眼中的高併發架構架構
- 高併發架構架構
- springcloud技術架構理解SpringGCCloud架構
- 深入理解lambada架構架構
- 架構師眼裡的高併發架構架構
- HDFS 09 - HDFS NameNode 的高可用機制
- 5、pgpool-II高可用性(一)資料庫的高可用性資料庫
- Tomcat 架構原理解析到架構設計借鑑Tomcat架構
- NSX高階路由架構路由架構
- Mysql高可用架構方案MySql架構
- Canal高可用架構部署架構
- powerVR tbdr 硬體架構理解VR架構
- Kafka 概述:深入理解架構Kafka架構
- 如何理解多租戶架構?架構
- 理解Underscore的設計架構架構
- NUMA架構的個人理解架構
- 換個角度,重新理解架構架構
- Pfsense HA(高可用性群集)
- MySQL高可用架構之Keepalived+主從架構部署MySql架構
- HDFS 01 - HDFS是什麼?它的適用場景有哪些?它的架構是什麼?架構
- HDFS的機架感知策略
- 【譯】理解Node事件驅動架構事件架構
- 理解本真的REST架構風格REST架構
- 理解索引:HBase介紹和架構索引架構