Hadoop Journal Node 作用 - 八戒_o - 開源中國社區(qū)
https://my.oschina.net/u/189445/blog/661561
hadoop2.2.0(HA)中HDFS的高可靠指的是可以同時啟動2個NameNode。其中一個處于工作狀態(tài),另一個處于隨時待命狀態(tài)。這樣,當一個NameNode所在的服務器宕機時,可以在數(shù)據(jù)不丟失的情況下,****手工****或者****自動****切換到另一個NameNode提供服務。 **
這些NameNode之間通過共享數(shù)據(jù),保證數(shù)據(jù)的狀態(tài)一致。多個NameNode之間共享數(shù)據(jù),可以通過Nnetwork File System或者Quorum Journal Node**。前者是通過linux共享的文件系統(tǒng),屬于操作系統(tǒng)的配置;后者是hadoop自身的東西,屬于軟件的配置。
我們這里講述使用Quorum Journal Node的配置方式,方式是手工切換。
集群啟動時,可以同時啟動2個NameNode。這些NameNode只有一個是active的,另一個屬于standby狀態(tài)。active狀態(tài)意味著提供服務,standby狀態(tài)意味著處于休眠狀態(tài),只進行數(shù)據(jù)同步,時刻準備著提供服務,如圖2所示。

架構
在一個典型的HA集群中,每個NameNode是一臺獨立的服務器。在任一時刻,只有一個NameNode處于active狀態(tài),另一個處于standby狀態(tài)。其中,active狀態(tài)的NameNode負責所有的客戶端操作,standby狀態(tài)的NameNode處于從屬地位,維護著數(shù)據(jù)狀態(tài),隨時準備切換。
兩個NameNode為了數(shù)據(jù)同步,會通過一組稱作JournalNodes的獨立進程進行相互通信。當active狀態(tài)的NameNode的命名空間有任何修改時,會告知大部分的JournalNodes進程。standby狀態(tài)的NameNode有能力讀取JNs中的變更信息,并且一直監(jiān)控edit log的變化,把變化應用于自己的命名空間。standby可以確保在集群出錯時,命名空間狀態(tài)已經完全同步了,如圖3所示。
