版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Hadoop技術(shù)原理ZookeeperZookeeper介紹01Zookeeper簡介01單點故障單點是指一個主節(jié)點;單點故障是指當(dāng)只有一個主節(jié)點,且主節(jié)點宕機時,整個集群無法使用Zookeeper簡介02單點故障單點是指一個主節(jié)點;單點故障是指當(dāng)只有一個主節(jié)點,且主節(jié)點宕機時,整個集群無法使用Zookeeper簡介03單點故障的解決方案:HAHadoop1.x:沒有解決方案Hadoop2.x:HA:高可用性(HighAvailability)
基本思想:多個主節(jié)點,一個節(jié)點Active,其他節(jié)點StandbyFailover:故障切換,一個主節(jié)點失效而無法運作時,另一個節(jié)點可自動接手原失效系統(tǒng)所執(zhí)行的工作。依賴:都需要借助Zookeeper這個工具才能實現(xiàn)HAZookeeper簡介04單點故障的解決方案:HAHA,Zookeeper也有單點故障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算法來實現(xiàn)可靠容錯,Google的BigTable就運用了Chubby來保證數(shù)據(jù)的一致性的。但遺憾的是,GoogleChubby并不是開源的,我們只能通過其論文和其他相關(guān)的文檔中了解具體的細(xì)節(jié)。值得慶幸的是,Yahoo!借鑒Chubby的設(shè)計思想開發(fā)了ZooKeeper,和Chubby一樣,ZooKeeper采用paxos的變種來實現(xiàn)消息傳輸?shù)囊恢滦?,Zookeeper開發(fā)了原子廣播協(xié)議Zab來實現(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é)點,創(chuàng)建并修改myid啟動并驗證Zookeeper工作原理與數(shù)據(jù)模型02Zookeeper工作原理01Paxos算法Zookeeper工作原理02Paxos算法現(xiàn)在議會開始運作,所有議員一開始記事本上面記錄的編號都是0。(1)有一個議員發(fā)了一個提議:將電費設(shè)定為1元/度。(2)他首先看了一下記事本,嗯,當(dāng)前提議編號是0。(3)那么他的這個提議的編號就是1,于是他給所有議員發(fā)消息:1號提議,設(shè)定電費1元/度。(4)其他議員收到消息以后查了一下記事本,哦,當(dāng)前提議編號是0,這個提議可接受,于是他記錄下這個提議并回復(fù):我接受你的1號提議,同時他在記事本上記錄:當(dāng)前提議編號為1。(5)發(fā)起提議的議員收到了超過半數(shù)的回復(fù),立即給所有人發(fā)通知:1號提議生效?。?)收到的議員會修改他的記事本,將1號提議由記錄改成正式的法令,當(dāng)有人問他電費為多少時,他會查看法令并告訴對方:1元/度。Zookeeper工作原理03Paxos算法沖突的解決:假設(shè)總共有三個議員S1-S3,S1和S2同時發(fā)起了一個提議:(1)1號提議,設(shè)定電費。(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)前的電費是多少,議員拿出他的記事本,查到當(dāng)前的編號PID是1,電費是1元/度,并告訴他。同時聲明:“數(shù)據(jù)不一定是最新的,想要最新的數(shù)據(jù)?等我找打電話給‘總統(tǒng)’同步(Sync)一下再告訴你”。寫數(shù)據(jù)的場景普通民眾乙到某個議員S2那里反映電費太貴,能否分時段收費,議員S2讓他在辦公室等著,自己將問題反映給了總統(tǒng),總統(tǒng)詢問所有議員的意見,多數(shù)議員表示支持分時段收費,白天0.9元/度,晚上1元/度,于是總統(tǒng)發(fā)表聲明。普通民眾乙拿到最新決議?!翱偨y(tǒng)”離開場景因為某些情況,“總統(tǒng)”缺失,議員各自發(fā)表聲明,推選新的“總統(tǒng)”?!翱偨y(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)機器組成集群。ZooKeeper數(shù)據(jù)模型07樹形層次結(jié)構(gòu)ZooKeeper維護(hù)著一個樹形層次結(jié)構(gòu),樹中節(jié)點稱為znode每個znode上都會保存自己的數(shù)據(jù)內(nèi)容,同時會保存一系列屬性信息。znode數(shù)據(jù)不超1MB每個Znode其有一個唯一的路徑標(biāo)識;通過工具ZooInspector可以查看ZooKeeper數(shù)據(jù)模型08節(jié)點屬性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é)點最后一次被更新的時間pZxid=0x1b00133dc0
//表示該節(jié)點的子節(jié)點列表最后一次被修改時的事務(wù)ID。注意,只有子節(jié)點列表變更了才會變更pZxid,子節(jié)點內(nèi)容變更不會影響pZxid。cversion=0
//子節(jié)點的版本號dataVersion=11
//數(shù)據(jù)節(jié)點的版本號aclVersion=0
//ACL版本號ephemeralOwner=0x0
//創(chuàng)建該節(jié)點的會話的seddionID。如果該節(jié)點是持久節(jié)點,那么這個屬性值為0。dataLength=22
//數(shù)據(jù)內(nèi)容的長度numChildren=0
//子節(jié)點的個數(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省吉安市遂川縣2024年中考模擬數(shù)學(xué)試題附答案
- 部編小學(xué)語文-一年級下全冊教案
- 科學(xué)育種技術(shù)提升作物光合作用效率
- 園林景觀工程施工組織設(shè)計技術(shù)標(biāo)
- 高一化學(xué)二專題化學(xué)科學(xué)與人類文明練習(xí)
- 2024屆北京海淀外國語高三(最后沖刺)化學(xué)試卷含解析
- 2024屆江蘇鹽城市時楊中學(xué)高考臨考沖刺化學(xué)試卷含解析
- 2024高中地理第2章區(qū)域生態(tài)環(huán)境建設(shè)第1節(jié)第2課時荒漠化的人為原因和防治學(xué)案新人教版必修3
- 2024高中物理第三章相互作用5力的分解課后作業(yè)含解析新人教版必修1
- 2024高中語文第7單元韓非子蚜第1課鄭人有且買履者練習(xí)含解析新人教版選修先秦諸子蚜
- 加油站加油機更換施工方案
- GB/T 42623-2023安裝于辦公、旅館和住宅建筑的乘客電梯的配置和選擇
- 高中英語新課程標(biāo)準(zhǔn)試題含答案(四套)
- 食品欺詐預(yù)防控制程序分享
- 員工辭職報告下載(6篇)
- 建筑節(jié)能PPT 課件
- GB/T 17906-2021消防應(yīng)急救援裝備液壓破拆工具通用技術(shù)條件
- GB/T 16674-1996六角法蘭面螺栓小系列
- GB/T 13436-2008扭轉(zhuǎn)振動測量儀器技術(shù)要求
- 高低壓配電柜-福建寧德核電站投標(biāo)書
- 干燥綜合癥護(hù)理課件
評論
0/150
提交評論