本篇文章為大家展示了如何進(jìn)行Zookeeper分析與集群搭建,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司于2013年成立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元城步做網(wǎng)站,已為上家服務(wù),為城步各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18980820575Zookeeper簡(jiǎn)介
Zookeeper是一個(gè)高效的分布式協(xié)調(diào)服務(wù),可以提供配置信息管理、命名、分布式同步、集群管理、數(shù)據(jù)庫(kù)切換等服務(wù)。它不適合用來(lái)存儲(chǔ)大量信息,可以用來(lái)存儲(chǔ)一些配置、發(fā)布與訂閱等少量信息。Hadoop、Storm、消息中間件、RPC服務(wù)框架、分布式數(shù)據(jù)庫(kù)同步系統(tǒng),這些都是Zookeeper的應(yīng)用場(chǎng)景。
Zookeeper集群中節(jié)點(diǎn)個(gè)數(shù)一般為奇數(shù)個(gè)(>=3),若集群中Master掛掉,剩余節(jié)點(diǎn)個(gè)數(shù)在半數(shù)以上時(shí),就可以推舉新的主節(jié)點(diǎn),繼續(xù)對(duì)外提供服務(wù)。
在這里還是要推薦下我自己建的大數(shù)據(jù)學(xué)習(xí)群:199427210,群里都是學(xué)大數(shù)據(jù)開(kāi)發(fā)的,如果你正在學(xué)習(xí)大數(shù)據(jù) ,小編歡迎你加入,大家都是軟件開(kāi)發(fā)黨,不定期分享干貨(只有大數(shù)據(jù)軟件開(kāi)發(fā)相關(guān)的),包括我自己整理的一份2018最新的大數(shù)據(jù)進(jìn)階資料和高級(jí)開(kāi)發(fā)教程,歡迎進(jìn)階中和進(jìn)想深入大數(shù)據(jù)的小伙伴加入。
客戶(hù)端發(fā)起事務(wù)請(qǐng)求,事務(wù)請(qǐng)求的結(jié)果在整個(gè)Zookeeper集群中所有機(jī)器上的應(yīng)用情況是一致的。不會(huì)出現(xiàn)集群中部分機(jī)器應(yīng)用了該事務(wù),而存在另外一部分集群中機(jī)器沒(méi)有應(yīng)用該事務(wù)的情況。在Zookeeper集群中的任何一臺(tái)機(jī)器,其看到的服務(wù)器的數(shù)據(jù)模型是一致的。Zookeeper能夠保證客戶(hù)端請(qǐng)求的順序,每個(gè)請(qǐng)求分配一個(gè)全局唯一的遞增編號(hào),用來(lái)反映事務(wù)操作的先后順序。Zookeeper將全量數(shù)據(jù)保存在內(nèi)存中,并直接服務(wù)于所有的非事務(wù)請(qǐng)求,在以讀操作為主的場(chǎng)景中性能非常突出。
Zookeeper使用的數(shù)據(jù)結(jié)構(gòu)為樹(shù)形結(jié)構(gòu),根節(jié)點(diǎn)為"/"。Zookeeper集群中的節(jié)點(diǎn),根據(jù)其身份特性分為leader、follower、observer。leader負(fù)責(zé)客戶(hù)端writer類(lèi)型的請(qǐng)求;follower負(fù)責(zé)客戶(hù)端reader類(lèi)型的請(qǐng)求,并參與leader選舉;observer是特殊的follower,可以接收客戶(hù)端reader請(qǐng)求,但是不會(huì)參與選舉,可以用來(lái)擴(kuò)容系統(tǒng)支撐能力,提高讀取速度。
Zookeeper是一個(gè)基于觀(guān)察者模式設(shè)計(jì)的分布式服務(wù)管理框架,負(fù)責(zé)存儲(chǔ)和管理相關(guān)數(shù)據(jù),接收觀(guān)察者的注冊(cè)。一旦這些數(shù)據(jù)的狀態(tài)發(fā)生變化,zookeeper就負(fù)責(zé)通知那些已經(jīng)在zookeeper集群進(jìn)行注冊(cè)并關(guān)心這些狀態(tài)發(fā)生變化的觀(guān)察者,以便觀(guān)察者執(zhí)行相關(guān)操作。
Zookeeper使用的是ZAB原子消息廣播協(xié)議,節(jié)點(diǎn)之間的一致性算法為Paxos,能夠保障分布式環(huán)境中數(shù)據(jù)的一致性。分布式場(chǎng)景下高可用是Zookeeper的特性,可以采用第三方客戶(hù)端的實(shí)現(xiàn),即Curator框架。
Paxos 算法解決的問(wèn)題是一個(gè)分布式系統(tǒng)如何就某個(gè)值(決議)達(dá)成一致。一個(gè)典型的場(chǎng)景是,在一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)中,如果各節(jié)點(diǎn)的初始狀態(tài)一致,每個(gè)節(jié)點(diǎn)執(zhí)行相同的操作序列,那么他們最后能得到一個(gè)一致的狀態(tài)。為保證每個(gè)節(jié)點(diǎn)執(zhí)行相同的命令序列,需要在每一條指令上執(zhí)行一個(gè)“一致性算法”以保證每個(gè)節(jié)點(diǎn)看到的指令一致。一個(gè)通用的一致性算法可以應(yīng)用在許多場(chǎng)景中,是分布式計(jì)算中的重要問(wèn)題。因此從20世紀(jì)80年代起對(duì)于一致性算法的研究就沒(méi)有停止過(guò)。節(jié)點(diǎn)通信存在兩種模型:共享內(nèi)存(Shared memory)和消息傳遞(Messages passing)。Paxos 算法就是一種基于消息傳遞模型的一致性算法。
不僅僅是分布式系統(tǒng)中,凡是多個(gè)過(guò)程需要達(dá)成某種一致的場(chǎng)合都可以使用Paxos 算法。一致性算法可以通過(guò)共享內(nèi)存(需要鎖)或者消息傳遞實(shí)現(xiàn),Paxos 算法采用的是后者。Paxos 算法適用的幾種情況:一臺(tái)機(jī)器中多個(gè)進(jìn)程/線(xiàn)程達(dá)成數(shù)據(jù)一致;分布式文件系統(tǒng)或者分布式數(shù)據(jù)庫(kù)中多客戶(hù)端并發(fā)讀寫(xiě)數(shù)據(jù);分布式存儲(chǔ)中多個(gè)副本響應(yīng)讀寫(xiě)請(qǐng)求的一致性。
Zookeeper集群搭建
在本文中Zookeeper節(jié)點(diǎn)個(gè)數(shù)(奇數(shù))為3個(gè)。Zookeeper默認(rèn)對(duì)外提供服務(wù)的端口號(hào)2181 。Zookeeper集群內(nèi)部3個(gè)節(jié)點(diǎn)之間通信默認(rèn)使用2888:3888
192.168.0.217 192.168.0.218 192.168.0.219
下載zookeeper對(duì)應(yīng)的tar包
分別上傳tar包到192.168.0.217 192.168.0.218 192.168.0.219
在217、218、219三個(gè)zookeeper節(jié)點(diǎn)上分別執(zhí)行下行指令,然后將解壓后的文件名zookeeper-3.4.10修改為zookeeper。
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local/
在三個(gè)zookeeper節(jié)點(diǎn)配置環(huán)境變量
vim /etc/profile
添加export ZOOKEEPER_HOME=/usr/local/zookeeper
在path中添加$ZOOKEEPER_HOME/bin
執(zhí)行source /etc/profile 使環(huán)境變量立即生效
修改zookeeper中conf目錄下的zoo_sample.cfg為zoo.cfg
修改三個(gè)zookeeper節(jié)點(diǎn)中的zoo.cfg文件,修改dataDir,添加server.0、server.1、server.2
在zookeeper目錄下,創(chuàng)建data目錄。在3個(gè)zookeeper節(jié)點(diǎn)中data目錄下分別創(chuàng)建myid文件,并分別添加內(nèi)容0、1、2
啟動(dòng)zookeeper
zkServer.sh start
zkServer.sh status
在zookeeper中任意一個(gè)節(jié)點(diǎn),執(zhí)行指令zkCli.sh
執(zhí)行指令zkCli.sh help ,查看幫助信息
ls / 查找根目錄
create /test abc 創(chuàng)建節(jié)點(diǎn)并賦值
get /test 獲取指定節(jié)點(diǎn)的值
set /test cb 設(shè)置已存在節(jié)點(diǎn)的值
rmr /test 遞歸刪除節(jié)點(diǎn)
delete /test/test01 刪除不存在子節(jié)點(diǎn)的節(jié)點(diǎn)
在Eclipse中查看Zookeeper集群節(jié)點(diǎn)
也可以使用ZooInspector查看。
此時(shí),在Xshell中執(zhí)行zkCli.sh,查看Zookeeper集群中樹(shù)形結(jié)構(gòu)的內(nèi)容
在Eclipse、ZooInspector中均可以添加、刪除Zookeeper集群的節(jié)點(diǎn)
上述內(nèi)容就是如何進(jìn)行Zookeeper分析與集群搭建,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
當(dāng)前標(biāo)題:如何進(jìn)行Zookeeper分析與集群搭建-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://m.kartarina.com/article48/cdcjep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)、網(wǎng)站策劃、標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航、App開(kāi)發(fā)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容