您好,登錄后才能下訂單哦!
大數(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ā)生
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。
免責(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)容。