版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、zookeeper,zookeeper,認識zookeeper,zookeeper是一個分布式的小文件存儲系統(tǒng)。前身是apache hadoop的一個組件,被拆分為一個hadoop的獨立子項目,認識zookeeper,zookeeper是一個為分布式應(yīng)用程序提供高性能協(xié)調(diào)服務(wù)的工具集合。它可以應(yīng)用在一些需要提供統(tǒng)一協(xié)調(diào)服務(wù)的場景中,例如命名、配置管理、同步和組服務(wù)等。而在我們的場景中,它被作為一個協(xié)調(diào)分布式環(huán)境中各子系統(tǒng)之間共享狀態(tài)數(shù)據(jù)的基礎(chǔ)組件,認識zookeeper,hbase yahoo mateq dubbo,zookeeper文件系統(tǒng),czxid:節(jié)點創(chuàng)建時的zxid mzxid:節(jié)
2、點最新一次更新發(fā)生時的zxid ctime:節(jié)點創(chuàng)建時的時間戳 mtime:節(jié)點最新一次更新發(fā)生時的時間戳version:節(jié)點數(shù)據(jù)的更新次數(shù) cversion:其子節(jié)點的更新次數(shù) aversion:節(jié)點acl(授權(quán)信息)的更新次數(shù) ephemeralowner: ephemeral節(jié)點所屬session datalength:節(jié)點數(shù)據(jù)的字節(jié)數(shù) numchildren:子節(jié)點個數(shù),zxid znode節(jié)點的狀態(tài)信息中包含czxid和mzxid, 那么什么是zxid呢?zookeeper狀態(tài)的每一次改變, 都對應(yīng)著一個遞增的transaction id, 該id稱為zxid. 由于zxid的遞增性
3、質(zhì), 如果zxid1小于zxid2, 那么zxid1肯定先于zxid2發(fā)生. 創(chuàng)建任意節(jié)點, 或者更新任意節(jié)點的數(shù)據(jù), 或者刪除任意節(jié)點, 都會導(dǎo)致zookeeper狀態(tài)發(fā)生改變, 從而導(dǎo)致zxid的值增加,zookeeper文件系統(tǒng),節(jié)點類型 persistent persistent節(jié)點不和特定的session綁定, 不會隨著創(chuàng)建該節(jié)點的session的結(jié)束而消失, 而是一直存在, 除非該節(jié)點被顯式刪除. ephemeral ephemeral節(jié)點是臨時性的, 如果創(chuàng)建該節(jié)點的session結(jié)束了, 該節(jié)點就會被自動刪除. ephemeral節(jié)點不能擁有子節(jié)點. 雖然ephemeral節(jié)點
4、與創(chuàng)建它的session綁定, 但只要該該節(jié)點沒有被刪除, 其他session就可以讀寫該節(jié)點中關(guān)聯(lián)的數(shù)據(jù). 使用-e參數(shù)指定創(chuàng)建ephemeral節(jié)點,sequence sequence并非節(jié)點類型中的一種. sequence節(jié)點既可以是ephemeral的, 也可以是persistent的. 創(chuàng)建sequence節(jié)點時, zookeeper server會在指定的節(jié)點名稱后加上一個數(shù)字序列, 該數(shù)字序列是遞增的. 因此可以多次創(chuàng)建相同的sequence節(jié)點, 而得到不同的節(jié)點. 使用-s參數(shù)指定創(chuàng)建sequence節(jié)點,zookeeper文件系統(tǒng),簡單命令 zk: localhost:21
5、81(connected) 1 ls / job, tmp, hbase, job2, zookeeper zk: localhost:2181(connected) 2 create -e /xief data created /xief zk: localhost:2181(connected) 5 delete /xief,zookeeper文件系統(tǒng),簡單命令 zk: localhost:2181(connected) 3 get /xief data czxid = 0 x50000001c ctime = fri apr 18 17:04:38 cst 2014 mzxid = 0
6、x50000001c mtime = fri apr 18 17:04:38 cst 2014 pzxid = 0 x50000001c cversion = 0 dataversion = 0 aclversion = 0 ephemeralowner = 0 x245725533760000 datalength = 4 numchildren = 0,zookeeper文件系統(tǒng),簡單命令 zk: localhost:2181(connected) 4 set /xief data2 czxid = 0 x50000001c ctime = fri apr 18 17:04:38 cst
7、2014 mzxid = 0 x50000001d mtime = fri apr 18 17:06:46 cst 2014 pzxid = 0 x50000001c cversion = 0 dataversion = 1 aclversion = 0 ephemeralowner = 0 x245725533760000 datalength = 5 numchildren = 0,zookeeper api,statexists(stringpath,booleanwatch); 是否存在節(jié)點:watch參數(shù)用于指定是否監(jiān)聽path node的創(chuàng)建, 刪除事件, 以及數(shù)據(jù)更新事件. 如果
8、該node存在, 則返回該node的狀態(tài)信息, 否則返回null. stringcreate(stringpath,bytedata,listacl,createmodecreatemode); 創(chuàng)建節(jié)點:path:znode的路徑,data:與znode關(guān)聯(lián)的數(shù)據(jù),acl:指定權(quán)限信息, 如果不想指定權(quán)限, 可以傳入ids.open_acl_unsafe. createmode:指定znode類型. createmode是一個枚舉類 void getchildren(string path, watcher watcher, childrencallback cb, object ctx)
9、獲取子節(jié)點: watch參數(shù)用于指定是否監(jiān)聽path node的子node的增加和刪除事件, 以及path node本身的刪除事件 void getdata(string path, watcher watcher, datacallback cb, object ctx) 獲取節(jié)點數(shù)據(jù):watch參數(shù)用于指定是否監(jiān)聽path node的刪除事件, 以及數(shù)據(jù)更新事件, 注意, 不監(jiān)聽path node的創(chuàng)建事件, 因為如果path node不存在, 該方法將拋出keeperexception.nonodeexception異常.stat參數(shù)是個傳出參數(shù), getdata方法會將path nod
10、e的狀態(tài)信息設(shè)置到該參數(shù)中. void setdata(string path, byte data, int version, statcallback cb, object ctx) 設(shè)置節(jié)點數(shù)據(jù): data為待更新的數(shù)據(jù).version參數(shù)指定要更新的數(shù)據(jù)的版本, 如果version和真實的版本不同, 更新操作將失敗. 指定version為-1則忽略版本檢查.返回path node的狀態(tài)信息. void delete(final string path, int version, voidcallback cb, object ctx) 刪除節(jié)點: version參數(shù)的作用同setdat
11、a方法,zookeeper api,void exists(final string path, watcher watcher, statcallback cb, object ctx) 是否存在節(jié)點:watch參數(shù)用于指定是否監(jiān)聽path node的創(chuàng)建, 刪除事件, 以及數(shù)據(jù)更新事件. 如果該node存在, 則返回該node的狀態(tài)信息, 否則返回null. void create(final string path, byte data, list acl, createmode createmode, stringcallback cb, object ctx) 創(chuàng)建節(jié)點:path:z
12、node的路徑,data:與znode關(guān)聯(lián)的數(shù)據(jù),acl:指定權(quán)限信息, 如果不想指定權(quán)限, 可以傳入ids.open_acl_unsafe. createmode:指定znode類型. createmode是一個枚舉類 listgetchildren(stringpath,booleanwatch); 獲取子節(jié)點: watch參數(shù)用于指定是否監(jiān)聽path node的子node的增加和刪除事件, 以及path node本身的刪除事件 bytegetdata(stringpath,booleanwatch,statstat); 獲取節(jié)點數(shù)據(jù):watch參數(shù)用于指定是否監(jiān)聽path node的刪除
13、事件, 以及數(shù)據(jù)更新事件, 注意, 不監(jiān)聽path node的創(chuàng)建事件, 因為如果path node不存在, 該方法將拋出keeperexception.nonodeexception異常.stat參數(shù)是個傳出參數(shù), getdata方法會將path node的狀態(tài)信息設(shè)置到該參數(shù)中. statsetdata(finalstringpath,bytedata,intversion); 設(shè)置節(jié)點數(shù)據(jù): data為待更新的數(shù)據(jù).version參數(shù)指定要更新的數(shù)據(jù)的版本, 如果version和真實的版本不同, 更新操作將失敗. 指定version為-1則忽略版本檢查.返回path node的狀態(tài)信息.
14、 voiddelete(finalstringpath,intversion); 刪除節(jié)點: version參數(shù)的作用同setdata方法,zookeeper api,訪問控制api list getacl(final string path, stat stat) void getacl(final string path, stat stat, aclcallback cb, object ctx) stat setacl(final string path, list acl, int version) void setacl(final string path, list acl, i
15、nt version, statcallback cb, object ctx) 同步api void sync(final string path, voidcallback cb, object ctx,watch機制,監(jiān)聽事件 新增 更新 刪除 子節(jié)點變化,watch機制,watch機制,zookeeper部署-單機模式,zoo.cfg配置,zookeeper部署,zookeeper部署,hadoopcentos-1 zookeeper-3.4.5-cdh4.3.0$ bin/./zkserver.sh start jmx enabled by default using config:
16、 /export/home/tools/zookeeper-3.4.5-cdh4.3.0/bin/./conf/zoo.cfg starting zookeeper . started hadoopcentos-2 zookeeper-3.4.5-cdh4.3.0$ bin/./zkserver.sh status jmx enabled by default using config: /export/home/tools/zookeeper-3.4.5-cdh4.3.0/bin/./conf/zoo.cfg mode: standalone,zookeeper部署,zookeeper集群模
17、式,zookeeper部署-集群模式,zookeeper部署,hadoopcentos-1 zookeeper-3.4.5-cdh4.3.0$ bin/./zkserver.sh start jmx enabled by default using config: /export/home/tools/zookeeper-3.4.5-cdh4.3.0/bin/./conf/zoo.cfg starting zookeeper . started hadoopcentos-2 zookeeper-3.4.5-cdh4.3.0$ bin/./zkserver.sh status jmx enabl
18、ed by default using config: /export/home/tools/zookeeper-3.4.5-cdh4.3.0/bin/./conf/zoo.cfg mode: leader hadoopcentos-2 zookeeper-3.4.5-cdh4.3.0$ bin/./zkserver.sh status jmx enabled by default using config: /export/home/tools/zookeeper-3.4.5-cdh4.3.0/bin/./conf/zoo.cfg mode: follower,zookeeper部署-集群模
19、式,三種角色 leader follower observer,zookeeper部署-集群模式,leader 1.恢復(fù)數(shù)據(jù) 2.維持與learner的心跳 3.接收learner寫請求 4.接收client的讀寫請求,zookeeper部署-集群模式,follower 1.向leader發(fā)送請求 2.接收leader消息并進行處理 3.接收client的請求,如果為寫請求,發(fā)送給leader進行投票,zookeeper特性,簡單 zookeeper核心是一個精簡的文件系統(tǒng),它提供了一些簡單的文件操作以及附加的功能,例如排序和通知。 易表達 zookeeper的數(shù)據(jù)結(jié)構(gòu)原型是一棵znode樹(
20、類似linux的文件系統(tǒng)),并且它們是一些已經(jīng)被構(gòu)建好的塊,可以用來構(gòu)建大型的協(xié)作數(shù)據(jù)結(jié)構(gòu)和協(xié)議。 高可用性 zookeeper可以運行在一組服務(wù)器上,同時它們被設(shè)計成高可用性,為你的應(yīng)用程序避免單點故障。 松耦合交互 zookeeper提供的watcher機制使得各客戶端與服務(wù)器的交互變得松耦合,每個客戶端無需知曉其他客戶端的存在,就可以和其他客戶端進行數(shù)據(jù)交互。 豐富的api zookeeper為開發(fā)人員提供了一套豐富的api,減輕了開發(fā)人員編寫通用協(xié)議的負擔,zookeeper使用場景,命名服務(wù),zookeeper使用場景,配置管理 發(fā)布與訂閱模型,即所謂的配置中心,顧名思義就是發(fā)布者將
21、數(shù)據(jù)發(fā)布到zk節(jié)點上,供訂閱者動態(tài)獲取數(shù)據(jù),實現(xiàn)配置信息的集中式管理和動態(tài)更新。例如全局的配置信息,服務(wù)式服務(wù)框架的服務(wù)地址列表等就非常適合使用,zookeeper使用場景,負載均衡,zookeeper使用場景,分布式獨占鎖,zookeeper使用場景,分布式讀寫鎖,zookeeper使用場景,分布式隊列-fifo,zookeeper使用場景,分布式隊列-syncqueue,zookeeper使用場景,集群管理,zookeeper集群-r/w,zookeeper-r/w,zookeeper-備份,容錯一個節(jié)點出錯,不致于讓整個系統(tǒng)停止工作,別的節(jié)點可以接管它的工作提高系統(tǒng)的擴展能力把負載分布到多個節(jié)點上,或者增加節(jié)點來提高系統(tǒng)的負載能力提高性能讓客戶端本地訪問就近的節(jié)點,能提高用戶訪問速度,zookeeper-備份,sna
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 牙科用充填器械市場環(huán)境與對策分析
- 大面積交通堵塞應(yīng)急處置預(yù)案
- Unit3語音(復(fù)習講義)-2023-2024學年三年級英語上冊單元速記·巧練(人教PEP版)
- 商場促銷活動效果反饋制度
- Unit 6重點詞句默寫+必背知識-2023-2024學年三年級英語上冊單元速記·巧練(譯林版三起)
- 《大學信息素養(yǎng)》(2020-2021學年 春季)學習通超星期末考試答案章節(jié)答案2024年
- M9U2語法復(fù)習+鞏固練習-2023-2024學年四年級英語上冊單元速記·巧練(外研版三起)
- 區(qū)塊鏈云存儲服務(wù)項目風險應(yīng)對計劃手冊
- M7U1課文知識復(fù)習+鞏固練習-2023-2024學年六年級英語上冊單元速記·巧練(外研版三起)
- 農(nóng)業(yè)科技園區(qū)建設(shè)與管理手冊
- Q∕SY 1752-2014 采油用凍膠型堵水調(diào)剖劑性能評價方法
- 園林綠化工程質(zhì)量外觀檢查記錄
- 2022年北京市三帆中學八年級上學期期中語文試卷
- 北師大版四年級數(shù)學上冊運算律復(fù)習統(tǒng)編課件ppt
- 《園林工程》圖文課件ppt-項目二
- 油氣集輸工藝理論--單點系泊和浮式生產(chǎn)系統(tǒng)
- 軟件無線電接收機課件
- 醫(yī)院大樓二次裝修工程施工組織設(shè)計(99頁含施工工藝)
- 醫(yī)院往來賬款管理制度
- T∕CGMA 031003-2020 一般用離心空氣壓縮機
- 企業(yè)消防安全教育培訓(xùn)教案PPT課件
評論
0/150
提交評論