溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Hadoop Journal Node有什么作用

發(fā)布時(shí)間:2021-12-09 09:17:51 來(lái)源:億速云 閱讀:183 作者:小新 欄目:云計(jì)算

小編給大家分享一下Hadoop Journal Node有什么作用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

NameNode之間共享數(shù)據(jù)(NFS 、Quorum Journal Node(用得多)

兩個(gè)NameNode為了數(shù)據(jù)同步,會(huì)通過(guò)一組稱作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)完全同步了。


Hadoop中的NameNode好比是人的心臟,非常重要,絕對(duì)不可以停止工作。在hadoop1時(shí)代,只有一個(gè)NameNode。如果該NameNode數(shù)據(jù)丟失或者不能工作,那么整個(gè)集群就不能恢復(fù)了。這是hadoop1中的單點(diǎn)問(wèn)題,也是hadoop1不可靠的表現(xiàn),如圖1所示。hadoop2就解決了這個(gè)問(wèn)題。

Hadoop Journal Node有什么作用

圖1 

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之間通過(guò)共享數(shù)據(jù),保證數(shù)據(jù)的狀態(tài)一致。多個(gè)NameNode之間共享數(shù)據(jù),可以通過(guò)Nnetwork File System或者Quorum Journal Node。前者是通過(guò)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所示。

Hadoop Journal Node有什么作用

圖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ì)通過(guò)一組稱作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所示。

Hadoop Journal Node有什么作用

圖3 

為了確??焖偾袚Q,standby狀態(tài)的NameNode有必要知道集群中所有數(shù)據(jù)塊的位置。為了做到這點(diǎn),所有的datanodes必須配置兩個(gè)NameNode的地址,發(fā)送數(shù)據(jù)塊位置信息和心跳給他們兩個(gè)。 

對(duì)于HA集群而言,確保同一時(shí)刻只有一個(gè)NameNode處于active狀態(tài)是至關(guān)重要的。否則,兩個(gè)NameNode的數(shù)據(jù)狀態(tài)就會(huì)產(chǎn)生分歧,可能丟失數(shù)據(jù),或者產(chǎn)生錯(cuò)誤的結(jié)果。為了保證這點(diǎn),JNs必須確保同一時(shí)刻只有一個(gè)NameNode可以向自己寫(xiě)數(shù)據(jù)。 

硬件資源 

為了部署HA集群,應(yīng)該準(zhǔn)備以下事情:

* NameNode服務(wù)器:運(yùn)行NameNode的服務(wù)器應(yīng)該有相同的硬件配置。

* JournalNode服務(wù)器:運(yùn)行的JournalNode進(jìn)程非常輕量,可以部署在其他的服務(wù)器上。注意:必須允許至少3個(gè)節(jié)點(diǎn)。當(dāng)然可以運(yùn)行更多,但是必須是奇數(shù)個(gè),如3、5、7、9個(gè)等等。當(dāng)運(yùn)行N個(gè)節(jié)點(diǎn)時(shí),系統(tǒng)可以容忍至少(N-1)/2(N至少為3)個(gè)節(jié)點(diǎn)失敗而不影響正常運(yùn)行。 

在HA集群中,standby狀態(tài)的NameNode可以完成checkpoint操作,因此沒(méi)必要配置Secondary NameNode、CheckpointNode、BackupNode。如果真的配置了,還會(huì)報(bào)錯(cuò)。

以上是“Hadoop Journal Node有什么作用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI