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