HA執行流程

魔界小皮蛋發表於2020-10-24

HA執行流程

1、叢集啟動2個NN,每個NN都會有一個ZKFC,每個zkfc到Zookeeper上爭搶一個臨時節點,哪個優先搶佔到了這個臨時節點,哪個就是Active,沒有搶到的就是standby ,同時變為standbyZKFC會申請臨時節點的watch,監控臨時節點的狀態,(若節點發生變化,表示Active出現異常);

2、HA方案中有兩個NN,一個是NN,一個是SNN(standbyNN), 每個NN都會有一個ZKFC,ZKFC的作用是監控NN健康狀態和與Zookeeper保持連線,這個連結就是申請臨時節點的連結。

3、當ActiveNN出現異常,Active狀態的ZKFC得知異常後斷開與Zookeeper的連結,此時ZK上的臨時節點就會消失。StandbyZKFC收到zk的斷開資訊,通知standbyNN, standbyNN遠端登入到原始activeNN節點,強行killNN程式。

4、通知standbyZKFC搶佔Zookeeper上的臨時節點,搶佔成功,將狀態從standby變為active

5、當原始activeNN重新恢復後,優先到Zokeeper上申請臨時節點,此時已被申請,他只能申請臨時節點的watch充當standbyNN角色。

相關文章