溫馨提示×

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

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

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享Hadoop階段的高可用配置

發(fā)布時(shí)間:2020-05-30 01:48:35 來(lái)源:網(wǎng)絡(luò) 閱讀:196 作者:wx5d42865f47214 欄目:大數(shù)據(jù)

  大數(shù)據(jù)學(xué)習(xí)路線分享Hadoop階段的高可用配置,什么是Hadoop的HA機(jī)制

  Ha機(jī)制即Hadoop的高可用(7*24小時(shí)不中斷服務(wù))

  正式引入HA機(jī)制是從hadoop2.0開(kāi)始,之前的版本中沒(méi)有HA機(jī)制

  hadoop-ha嚴(yán)格來(lái)說(shuō)應(yīng)該分成各個(gè)組件的HA機(jī)制——HDFS的HA、YARN的HA

HDFS的HA機(jī)制詳解
HDFS 的HA主要是通過(guò)雙namenode協(xié)調(diào)工作實(shí)現(xiàn)

雙namenode協(xié)調(diào)工作的要點(diǎn):
A、元數(shù)據(jù)管理方式需要改變:

內(nèi)存中各自保存一份元數(shù)據(jù)

Edits日志只能有一份,只有Active狀態(tài)的namenode節(jié)點(diǎn)可以做寫(xiě)操作

兩個(gè)namenode都可以讀取edits

共享的edits放在一個(gè)共享存儲(chǔ)中管理(qjournal和NFS兩個(gè)主流實(shí)現(xiàn))

B、需要一個(gè)狀態(tài)管理功能模塊

實(shí)現(xiàn)了一個(gè)zkfailover,常駐在每一個(gè)namenode所在的節(jié)點(diǎn)

每一個(gè)zkfailover負(fù)責(zé)監(jiān)控自己所在namenode節(jié)點(diǎn),利用zk進(jìn)行狀態(tài)標(biāo)識(shí)

當(dāng)需要進(jìn)行狀態(tài)切換時(shí),由zkfailover來(lái)負(fù)責(zé)切換

切換時(shí)需要防止brain split腦裂現(xiàn)象的發(fā)生

好程序員大數(shù)據(jù)學(xué)習(xí)路線分享Hadoop階段的高可用配置

Namenode的運(yùn)行原理
兩臺(tái)服務(wù)器上都存在一個(gè)namenode ,其中一臺(tái)Namenode 處于active狀態(tài),一臺(tái)處于standby狀態(tài),兩臺(tái)服務(wù)器數(shù)據(jù)共享,兩臺(tái)服務(wù)器各自存有一份元數(shù)據(jù),但是edit數(shù)據(jù)只有一份,兩臺(tái)服務(wù)器只有處于active狀態(tài)的namenode服務(wù)器可以對(duì)edit進(jìn)行寫(xiě)操作,另一臺(tái)服務(wù)器只能對(duì)edit進(jìn)行讀操作,而共享的edit放到一個(gè)共享存儲(chǔ)中進(jìn)行管理。共享存儲(chǔ)由文件管理系統(tǒng)qjournal和NFS來(lái)實(shí)現(xiàn)。

而兩臺(tái)服務(wù)器的active standby狀態(tài)如何管理,則需要一個(gè)管理模塊:ZKFC (zookeeper failover controller) 來(lái)管理。每一個(gè)zkfc負(fù)責(zé)監(jiān)控自己所在namenode節(jié)點(diǎn),利用zk進(jìn)行狀態(tài)標(biāo)識(shí)。當(dāng)需要進(jìn)行狀態(tài)切換時(shí),由zkfailover來(lái)負(fù)責(zé)切換

切換時(shí)需要防止brain split腦裂現(xiàn)象的發(fā)生。
什么是腦裂現(xiàn)象

腦裂現(xiàn)象就是兩臺(tái)namenode都處于active狀態(tài),產(chǎn)生沖突,這就是腦裂。Hadoop的高可用配置要注意解決腦裂狀態(tài)。

腦裂狀態(tài)如何產(chǎn)生

當(dāng)一臺(tái)active狀態(tài)的namenode服務(wù)器處于假死狀態(tài),那么另一臺(tái)namenode服務(wù)器的zkfc收到信息,把屬于他的namenode狀態(tài)改變?yōu)閍ctive狀態(tài),第一臺(tái)處于假死狀態(tài)的namdenode又醒過(guò)來(lái),就會(huì)產(chǎn)生腦裂。

腦裂如何解決
第二臺(tái)namenode的zkfc此時(shí)就會(huì)一不做二不休,把第一臺(tái)處于假死狀態(tài)的namenode殺掉 運(yùn)用ssh kill -9 namenode ,直接殺掉第一臺(tái)服務(wù)器的namenode進(jìn)行補(bǔ)刀,如果補(bǔ)刀不成功的話,zkfc進(jìn)入第一臺(tái)服務(wù)器,直接調(diào)用用戶的自定義腳本程序 /home/Hadoop/kill/poweroff.sh 殺-掉假-死的namenode。

向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