Master选举原理
為什么需要Zookeeper?
為了防止集群的主NameNode掛掉,再另創(chuàng)建一個(gè)輔NameNode,兩個(gè)保持?jǐn)?shù)據(jù)同步,一旦主NameNode掛掉,集群就會(huì)把輔NameNode節(jié)點(diǎn)作為整個(gè)集群的主NameNode,而在這之間就需要用到Zookeeper來協(xié)調(diào),幫助輔NameNode成為整個(gè)集群的主NameNode。
在這里Zookeeper是實(shí)現(xiàn)的master選舉機(jī)制完成這一過程,選舉機(jī)制分兩種:
第一種:誰先創(chuàng)建master臨時(shí)節(jié)點(diǎn),誰就是master,當(dāng)一個(gè)master掛掉了,master節(jié)點(diǎn)就消失了,別的節(jié)點(diǎn)就會(huì)監(jiān)聽到,就會(huì)繼續(xù)去創(chuàng)建master臨時(shí)節(jié)點(diǎn),以此類推,利用Zookeeper的兩個(gè)特點(diǎn)(一個(gè)節(jié)點(diǎn)只能成功創(chuàng)建一次、利用監(jiān)聽的機(jī)制)
第二種:在master下面創(chuàng)建臨時(shí)有序節(jié)點(diǎn),那個(gè)節(jié)點(diǎn)最小,那個(gè)就是master,節(jié)點(diǎn)掛掉,下面那個(gè)臨時(shí)節(jié)點(diǎn)就會(huì)監(jiān)聽到上面的臨時(shí)節(jié)點(diǎn)掛掉了,從而取代成為master,以此類推,(利用Zookeeper創(chuàng)建節(jié)點(diǎn)臨時(shí)有序的特性)
第二種master選舉機(jī)制利用Curator的API寫:LeaderSelectionApp.java
打包上傳到各個(gè)節(jié)點(diǎn)運(yùn)行:
java -cp zookeeper-course-1.0-SNAPSHOT-jar-with-dependencies.jar com.twq.zk.usage.LeaderSelectionApp
master、slave1、slave2輪流成為master
兩種選舉機(jī)制示意圖:
第一種:
第二種:
來源:https://www.icode9.com/content-4-125193.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Master选举原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平滑重启更新(GR机制)
- 下一篇: 兀突骨三国志战略版有用吗(兀突骨)