双NameNode的同步机制
前言:Hadoop2.0中基于JournalNode的雙NameNode的元數據同步機制
日志節點(JournalNode)的概念及作用
JournalNode是HA集群(高可用集群,HighAvailabilityCluster)中Active NameNode(ANN,活動名稱節點)和StandBy NameNode(SNN,備用名稱節點)之間編輯日志Edits和HDFS元數據共享的傳輸介質。
主要作用是:為兩個NameNode之間共享數據,同步狀態。
過程
Active Namenode往Journal Nodes中寫EditLog數據
StandBy Namenode再從Journal Nodes中讀取EditLog數據進行同步
日志管理器(QJM)的概念及工作原理
概念:QJM是由多個日志節點JournalNodes(JN)組成的JournalNode集群,主要用于存儲EditLog,一般運行奇數個JournalNodes,至少需要3個,每個JournalNode保存同樣的EditLog副本。
基于QJM共享存儲的數據同步機制:
當Active NameNode執行任何有關命名空間的修改,它需要告知JournalNodes集群中大多數(一半以上)的JournalNodes進程
而Standby NameNode負責觀察集群中JournalNodes的變化,有能力從JournalNodes中讀取從Active NameNode發送過來的信息,一直監控EditLog的變化,并更新其內部的命名空間,一直監控EditLog的變化,并更新其內部的命名空間
一旦Active NameNode遇到錯誤,Standby NameNode需要已經從JournalNodes中讀出全部EditLog日志,保證在故障切換發生前其NameNodes的狀態已經完全同步,然后,Standby NameNode再切換成Active狀態
總結
以上是生活随笔為你收集整理的双NameNode的同步机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 结构主题模型(一)stm包工作流
- 下一篇: Hadoop 2.0联邦机制