Master選舉原理


為什么需要Zookeeper?
為了防止集群的主NameNode掛掉,再另創建一個輔NameNode,兩個保持數據同步,一旦主NameNode掛掉,集群就會把輔NameNode節點作為整個集群的主NameNode,而在這之間就需要用到Zookeeper來協調,幫助輔NameNode成為整個集群的主NameNode。

在這里Zookeeper是實現的master選舉機制完成這一過程,選舉機制分兩種:
    第一種:誰先創建master臨時節點,誰就是master,當一個master掛掉了,master節點就消失了,別的節點就會監聽到,就會繼續去創建master臨時節點,以此類推,利用Zookeeper的兩個特點(一個節點只能成功創建一次、利用監聽的機制)
    第二種:在master下面創建臨時有序節點,那個節點最小,那個就是master,節點掛掉,下面那個臨時節點就會監聽到上面的臨時節點掛掉了,從而取代成為master,以此類推,(利用Zookeeper創建節點臨時有序的特性)

第二種master選舉機制利用Curator的API寫:LeaderSelectionApp.java
打包上傳到各個節點運行:
java -cp zookeeper-course-1.0-SNAPSHOT-jar-with-dependencies.jar com.twq.zk.usage.LeaderSelectionApp
master、slave1、slave2輪流成為master
兩種選舉機制示意圖:
第一種:

第二種:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM