版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Hadoop技術(shù)原理ZookeeperZookeeper介紹01Zookeeper簡介01單點(diǎn)故障單點(diǎn)是指一個主節(jié)點(diǎn);單點(diǎn)故障是指當(dāng)只有一個主節(jié)點(diǎn),且主節(jié)點(diǎn)宕機(jī)時,整個集群無法使用Zookeeper簡介02單點(diǎn)故障單點(diǎn)是指一個主節(jié)點(diǎn);單點(diǎn)故障是指當(dāng)只有一個主節(jié)點(diǎn),且主節(jié)點(diǎn)宕機(jī)時,整個集群無法使用Zookeeper簡介03單點(diǎn)故障的解決方案:HAHadoop1.x:沒有解決方案Hadoop2.x:HA:高可用性(HighAvailability)
基本思想:多個主節(jié)點(diǎn),一個節(jié)點(diǎn)Active,其他節(jié)點(diǎn)StandbyFailover:故障切換,一個主節(jié)點(diǎn)失效而無法運(yùn)作時,另一個節(jié)點(diǎn)可自動接手原失效系統(tǒng)所執(zhí)行的工作。依賴:都需要借助Zookeeper這個工具才能實(shí)現(xiàn)HAZookeeper簡介04單點(diǎn)故障的解決方案:HAHA,Zookeeper也有單點(diǎn)故障Zookeeper集群后的HAZookeeper簡介05ZooKeeper是一個高可用的分布式數(shù)據(jù)管理和協(xié)調(diào)框架,并且能夠很好的保證分布式環(huán)境中數(shù)據(jù)的一致性。在越來越多的分布式系統(tǒng)(Hadoop、HBase、Kafka)中,Zookeeper都作為核心組件使用Zookeeper簡介06Zookeeper產(chǎn)生背景Google在系統(tǒng)的可靠性方面提出了中心化的組件Chubby—粗粒度鎖服務(wù),Chubby很好的解決了分布式開發(fā)的一致性問題;GoogleChubby采用paxos算法來實(shí)現(xiàn)可靠容錯,Google的BigTable就運(yùn)用了Chubby來保證數(shù)據(jù)的一致性的。但遺憾的是,GoogleChubby并不是開源的,我們只能通過其論文和其他相關(guān)的文檔中了解具體的細(xì)節(jié)。值得慶幸的是,Yahoo!借鑒Chubby的設(shè)計(jì)思想開發(fā)了ZooKeeper,和Chubby一樣,ZooKeeper采用paxos的變種來實(shí)現(xiàn)消息傳輸?shù)囊恢滦?,Zookeeper開發(fā)了原子廣播協(xié)議Zab來實(shí)現(xiàn)數(shù)據(jù)的一致性傳輸。Zookeeper安裝07Zookeeper安裝模式Zookeeper安裝08Zookeeper安裝步驟下載對應(yīng)版本Zookeeper解壓zookeeper安裝包配置環(huán)境變量exportZOOKEEPER_HOME=/usr/app/zookeeper-3.4.14exportPATH=$ZOOKEEPER_HOME/bin:$PATH修改配置文件zoo.cfg集群模式下需要標(biāo)識節(jié)點(diǎn),創(chuàng)建并修改myid啟動并驗(yàn)證Zookeeper工作原理與數(shù)據(jù)模型02Zookeeper工作原理01Paxos算法Zookeeper工作原理02Paxos算法現(xiàn)在議會開始運(yùn)作,所有議員一開始記事本上面記錄的編號都是0。(1)有一個議員發(fā)了一個提議:將電費(fèi)設(shè)定為1元/度。(2)他首先看了一下記事本,嗯,當(dāng)前提議編號是0。(3)那么他的這個提議的編號就是1,于是他給所有議員發(fā)消息:1號提議,設(shè)定電費(fèi)1元/度。(4)其他議員收到消息以后查了一下記事本,哦,當(dāng)前提議編號是0,這個提議可接受,于是他記錄下這個提議并回復(fù):我接受你的1號提議,同時他在記事本上記錄:當(dāng)前提議編號為1。(5)發(fā)起提議的議員收到了超過半數(shù)的回復(fù),立即給所有人發(fā)通知:1號提議生效?。?)收到的議員會修改他的記事本,將1號提議由記錄改成正式的法令,當(dāng)有人問他電費(fèi)為多少時,他會查看法令并告訴對方:1元/度。Zookeeper工作原理03Paxos算法沖突的解決:假設(shè)總共有三個議員S1-S3,S1和S2同時發(fā)起了一個提議:(1)1號提議,設(shè)定電費(fèi)。(2)S1想設(shè)為1元/度,S2想設(shè)為2元/度。(3)結(jié)果S3先收到了S1的提議,于是他做了和前面同樣的操作。(4)緊接著他又收到了S2的提議,結(jié)果他一查記事本,咦,這個提議的編號小于等于我的當(dāng)前編號1,于是他拒絕了這個提議:對不起,這個提議先前提過了。(5)于是S2的提議被拒絕,S1正式發(fā)布了提議:1號提議生效。(6)S2向S1或者S3打聽并更新了1號法令的內(nèi)容,然后他可以選擇繼續(xù)發(fā)起2號提議。Zookeeper工作原理04Zab算法讀數(shù)據(jù)的場景普通民眾甲到某個議員S1那里詢問當(dāng)前的電費(fèi)是多少,議員拿出他的記事本,查到當(dāng)前的編號PID是1,電費(fèi)是1元/度,并告訴他。同時聲明:“數(shù)據(jù)不一定是最新的,想要最新的數(shù)據(jù)?等我找打電話給‘總統(tǒng)’同步(Sync)一下再告訴你”。寫數(shù)據(jù)的場景普通民眾乙到某個議員S2那里反映電費(fèi)太貴,能否分時段收費(fèi),議員S2讓他在辦公室等著,自己將問題反映給了總統(tǒng),總統(tǒng)詢問所有議員的意見,多數(shù)議員表示支持分時段收費(fèi),白天0.9元/度,晚上1元/度,于是總統(tǒng)發(fā)表聲明。普通民眾乙拿到最新決議?!翱偨y(tǒng)”離開場景因?yàn)槟承┣闆r,“總統(tǒng)”缺失,議員各自發(fā)表聲明,推選新的“總統(tǒng)”。“總統(tǒng)”大選期間政府停業(yè),拒絕普通民眾的請求。Zookeeper工作原理05Zab算法小島(Island)——ZookeeperServerCluster議員(Senator)——ZookeeperServer提議(Proposal)——ZNodeChange(Create/Delete/SetData…)提議編號(PID)——Zxid(ZooKeeperTransactionId)總統(tǒng) ——Leader普通議員——Follower普通民眾——ClientPaxos假設(shè):人人平等存在一個問題:在某種情況下會產(chǎn)生一直解決不了沖突問題解決方法:設(shè)置一個總統(tǒng)(Leader)。如果議員有自己的提議,必須發(fā)給總統(tǒng)并由總統(tǒng)來提出Zookeeper架構(gòu)06Zookeeper架構(gòu)組成Server對外的服務(wù)端口默認(rèn)是2181。Server主要兩個角色:Leader、Follower。Leader:負(fù)責(zé)進(jìn)行投票的發(fā)起和決議,更新系統(tǒng)狀態(tài);Follower:接收客戶端請求并向客戶端返回結(jié)果,在選舉過程中參與投票;Client:請求發(fā)起方。會話(Session):Client與Server之間建立的連接,通過建立連接,Client發(fā)送請求并接受響應(yīng),同時還能通過該連接接收來自服務(wù)器的Watch事件通知。生產(chǎn)環(huán)境一般采用奇數(shù)臺(大于1)機(jī)器組成集群。ZooKeeper數(shù)據(jù)模型07樹形層次結(jié)構(gòu)ZooKeeper維護(hù)著一個樹形層次結(jié)構(gòu),樹中節(jié)點(diǎn)稱為znode每個znode上都會保存自己的數(shù)據(jù)內(nèi)容,同時會保存一系列屬性信息。znode數(shù)據(jù)不超1MB每個Znode其有一個唯一的路徑標(biāo)識;通過工具ZooInspector可以查看ZooKeeper數(shù)據(jù)模型08節(jié)點(diǎn)屬性cZxid=0x1b00133dc0
//CreatedZXID,表示該ZNode被創(chuàng)建時的事務(wù)IDctime=TueJan0315:44:42CST2017
//CreatedTime,表示該ZNode被創(chuàng)建的時間mZxid=0x1d00000063
//ModifiedZXID,表示該ZNode最后一次被更新時的事務(wù)IDmtime=FriJan0608:44:25CST2017
//ModifiedTime,表示該節(jié)點(diǎn)最后一次被更新的時間pZxid=0x1b00133dc0
//表示該節(jié)點(diǎn)的子節(jié)點(diǎn)列表最后一次被修改時的事務(wù)ID。注意,只有子節(jié)點(diǎn)列表變更了才會變更pZxid,子節(jié)點(diǎn)內(nèi)容變更不會影響pZxid。cversion=0
//子節(jié)點(diǎn)的版本號dataVersion=11
//數(shù)據(jù)節(jié)點(diǎn)的版本號aclVersion=0
//ACL版本號ephemeralOwner=0x0
//創(chuàng)建該節(jié)點(diǎn)的會話的seddionID。如果該節(jié)點(diǎn)是持久節(jié)點(diǎn),那么這個屬性值為0。dataLength=22
//數(shù)據(jù)內(nèi)容的長度numChildren=0
//子節(jié)點(diǎn)的個數(shù)Zookeepe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:近代日本對中國茶業(yè)的侵奪研究
- 課題申報參考:教育高質(zhì)量發(fā)展視域下大學(xué)體育一流本科課程建設(shè)實(shí)證研究
- 2025年園林景觀綠化地使用權(quán)轉(zhuǎn)讓合同4篇
- 2025年度新能源汽車充電站車位租賃合作協(xié)議書4篇
- 2025版委托擔(dān)保合同范本:知識產(chǎn)權(quán)質(zhì)押貸款擔(dān)保合同3篇
- 2025年度家具行業(yè)綠色供應(yīng)鏈管理合同4篇
- 二零二五版橋梁建設(shè)施工合作協(xié)議2篇
- 2025年度個人沿街店房租賃合同(含合同解除條件與爭議解決)4篇
- 二零二五年度國際交流項(xiàng)目教師選拔與聘用協(xié)議
- 2025年度星級酒店廚房設(shè)備采購與定期檢修合同4篇
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測濟(jì)南期末試題和答案
- 中儲糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 湖南省長沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項(xiàng)整治三年行動實(shí)施方案全國安全生產(chǎn)專項(xiàng)整治三年行動計(jì)劃
- 2025屆江蘇省13市高三最后一卷生物試卷含解析
- 當(dāng)前中國個人極端暴力犯罪個案研究
- 中國象棋比賽規(guī)則
- 7天減肥餐食譜給你最能瘦的一周減肥食譜
- GB/T 31525-2015圖形標(biāo)志電動汽車充換電設(shè)施標(biāo)志
評論
0/150
提交評論