JournalNode的作用
NameNode之間共享數據(NFS 、Quorum Journal Node(用得多))
兩個NameNode為了數據同步,會通過一組稱作JournalNodes的獨立進程進行相互通信。當active狀態的NameNode的命名空間有任何修改時,會告知大部分的JournalNodes進程。standby狀態的NameNode有能力讀取JNs中的變更信息,并且一直監控edit log的變化,把變化應用于自己的命名空間。standby可以確保在集群出錯時,命名空間狀態已經完全同步了。
上面在Active Namenode與StandBy Namenode之間的綠色區域就是JournalNode,當然數量不一定只有1個,作用相當于NFS共享文件系統.Active Namenode往里寫editlog數據,StandBy再從里面讀取數據進行同步.
NameNode之間共享數據(NFS 、Quorum Journal Node(用得多))
兩個NameNode為了數據同步,會通過一組稱作JournalNodes的獨立進程進行相互通信。當active狀態的NameNode的命名空間有任何修改時,會告知大部分的JournalNodes進程。standby狀態的NameNode有能力讀取JNs中的變更信息,并且一直監控edit log的變化,把變化應用于自己的命名空間。standby可以確保在集群出錯時,命名空間狀態已經完全同步了。
Hadoop中的NameNode好比是人的心臟,非常重要,絕對不可以停止工作
hadoop2.2.0(HA)中HDFS的高可靠指的是可以同時啟動2個NameNode。其中一個處于工作狀態,另一個處于隨時待命狀態。這樣,當一個NameNode所在的服務器宕機時,可以在數據不丟失的情況下,手工或者自動切換到另一個NameNode提供服務。
這些NameNode之間通過共享數據,保證數據的狀態一致。多個NameNode之間共享數據,可以通過Nnetwork File System或者Quorum Journal Node。前者是通過linux共享的文件系統,屬于操作系統的配置;后者是hadoop自身的東西,屬于軟件的配置。
我們這里講述使用Quorum Journal Node的配置方式,方式是手工切換。
集群啟動時,可以同時啟動2個NameNode。這些NameNode只有一個是active的,另一個屬于standby狀態。active狀態意味著提供服務,standby狀態意味著處于休眠狀態,只進行數據同步,時刻準備著提供服務,如圖2所示。
架構
在一個典型的HA集群中,每個NameNode是一臺獨立的服務器。在任一時刻,只有一個NameNode處于active狀態,另一個處于standby狀態。其中,active狀態的NameNode負責所有的客戶端操作,standby狀態的NameNode處于從屬地位,維護著數據狀態,隨時準備切換。
兩個NameNode為了數據同步,會通過一組稱作JournalNodes的獨立進程進行相互通信。當active狀態的NameNode的命名空間有任何修改時,會告知大部分的JournalNodes進程。standby狀態的NameNode有能力讀取JNs中的變更信息,并且一直監控edit log的變化,把變化應用于自己的命名空間。standby可以確保在集群出錯時,命名空間狀態已經完全同步了,如圖3所示。
為了確??焖偾袚Q,standby狀態的NameNode有必要知道集群中所有數據塊的位置。為了做到這點,所有的datanodes必須配置兩個NameNode的地址,發送數據塊位置信息和心跳給他們兩個。
對于HA集群而言,確保同一時刻只有一個NameNode處于active狀態是至關重要的。否則,兩個NameNode的數據狀態就會產生分歧,可能丟失數據,或者產生錯誤的結果。為了保證這點,JNs必須確保同一時刻只有一個NameNode可以向自己寫數據。
總結
以上是生活随笔為你收集整理的JournalNode的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 18.HMM隐马尔可夫模型
- 下一篇: 普兰金融是干什么的