Hadoop Journal Node 作用 - 八戒_o - 開源中國(guó)社區(qū)
https://my.oschina.net/u/189445/blog/661561
hadoop2.2.0(HA)中HDFS的高可靠指的是可以同時(shí)啟動(dòng)2個(gè)NameNode盒件。其中一個(gè)處于工作狀態(tài)孕似,另一個(gè)處于隨時(shí)待命狀態(tài)。這樣,當(dāng)一個(gè)NameNode所在的服務(wù)器宕機(jī)時(shí),可以在數(shù)據(jù)不丟失的情況下,****手工****或者****自動(dòng)****切換到另一個(gè)NameNode提供服務(wù)卜录。 **
這些NameNode之間通過共享數(shù)據(jù),保證數(shù)據(jù)的狀態(tài)一致眶明。多個(gè)NameNode之間共享數(shù)據(jù)艰毒,可以通過Nnetwork File System或者Quorum Journal Node**。前者是通過linux共享的文件系統(tǒng)搜囱,屬于操作系統(tǒng)的配置丑瞧;后者是hadoop自身的東西,屬于軟件的配置犬辰。
我們這里講述使用Quorum Journal Node的配置方式嗦篱,方式是手工切換。
集群?jiǎn)?dòng)時(shí)幌缝,可以同時(shí)啟動(dòng)2個(gè)NameNode灸促。這些NameNode只有一個(gè)是active的,另一個(gè)屬于standby狀態(tài)。active狀態(tài)意味著提供服務(wù)浴栽,standby狀態(tài)意味著處于休眠狀態(tài)荒叼,只進(jìn)行數(shù)據(jù)同步,時(shí)刻準(zhǔn)備著提供服務(wù)典鸡,如圖2所示被廓。
架構(gòu)
在一個(gè)典型的HA集群中,每個(gè)NameNode是一臺(tái)獨(dú)立的服務(wù)器萝玷。在任一時(shí)刻嫁乘,只有一個(gè)NameNode處于active狀態(tài),另一個(gè)處于standby狀態(tài)球碉。其中蜓斧,active狀態(tài)的NameNode負(fù)責(zé)所有的客戶端操作,standby狀態(tài)的NameNode處于從屬地位睁冬,維護(hù)著數(shù)據(jù)狀態(tài)挎春,隨時(shí)準(zhǔn)備切換。
兩個(gè)NameNode為了數(shù)據(jù)同步豆拨,會(huì)通過一組稱作JournalNodes的獨(dú)立進(jìn)程進(jìn)行相互通信直奋。當(dāng)active狀態(tài)的NameNode的命名空間有任何修改時(shí),會(huì)告知大部分的JournalNodes進(jìn)程施禾。standby狀態(tài)的NameNode有能力讀取JNs中的變更信息脚线,并且一直監(jiān)控edit log的變化,把變化應(yīng)用于自己的命名空間弥搞。standby可以確保在集群出錯(cuò)時(shí)殉挽,命名空間狀態(tài)已經(jīng)完全同步了,如圖3所示拓巧。