hadoop namenode HA 高可用概念和切換NameNode

nn高可用

1、架構介紹

上圖,加入zookeper集羣,當nn主節點掛掉,通過zk自動將nn副本升級爲主節點。
爲了提供快速故障轉移,備用節點還必須具有關於羣集中塊的位置的最新信息。爲了實現這一點,DataNode配置了所有NameNode的位置,並向NN發送塊位置信息和心跳。

如圖中的jn集羣。當Active節點執行任何名稱空間修改時,它會將修改記錄持久地記錄到大多數這些JN中。待機節點能夠從JN讀取編輯,並且不斷觀察它們對編輯日誌的更改。當備用節點看到編輯時,它會將它們應用到自己的命名空間。這可確保在發生故障轉移之前完全同步命名空間狀態,保證兩個nn數據最終的一致性。
1)如何確定哪個nn是主節點
圖中還新增了一個zkfc角色,是一個jvm進程,用於監控nn狀態。當nn啓動後,zkfc檢測到各自nn都已啓動正常運行後,zkfc向zk發送創建鎖的消息,誰的鎖創建成功,則對應的nn標識爲主節點,其它的zkfc則會對該節點進行watch,即監控,並註冊回調方法。
2)nn主節點掛掉後,nn副本如何升級爲主節點
當nn主節點掛掉後,對應的zkfc檢測到nn狀態,向zk發送刪除鎖的消息,鎖刪除成功後,則觸發一個事件,該事件回調副本對應的zkfc,zkfc得到消息後先取zk爭奪創建鎖,完成後檢測nn主節點是否掛掉,掛掉則升級副本爲主節點,沒掛掉則將主節點降級爲副本,將自己對應的nn升級爲主節點。
3)主節點zkfc掛掉,主節點沒掛
zkfc在zk創建的鎖屬於臨時節點,該節點屬於對應的回話session。
zkfc掛掉,zkfc和zk之間tcp鏈接會隨之斷開,session隨之消失,鎖被刪除,觸發一個事件回調副本的zkfc,zkfc得到消息後先取zk爭奪創建鎖,完成後檢測nn主節點是否掛掉,掛掉則升級副本爲主節點,沒掛掉則將主節點降級爲副本,將自己對應的nn升級爲主節點。

2、手動切換NN

查看NameNode的狀態
hdfs haadmin -getServiceState nn1
手動切換nn1爲active
hdfs haadmin -transitionToActive nn1 ##切換成active
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章