![《大數(shù)據(jù)與云計算》課件-10.Zoo Keeper_第1頁](http://file4.renrendoc.com/view2/M00/35/10/wKhkFmazegCAEnSSAAICrnJ49m4430.jpg)
![《大數(shù)據(jù)與云計算》課件-10.Zoo Keeper_第2頁](http://file4.renrendoc.com/view2/M00/35/10/wKhkFmazegCAEnSSAAICrnJ49m44302.jpg)
![《大數(shù)據(jù)與云計算》課件-10.Zoo Keeper_第3頁](http://file4.renrendoc.com/view2/M00/35/10/wKhkFmazegCAEnSSAAICrnJ49m44303.jpg)
![《大數(shù)據(jù)與云計算》課件-10.Zoo Keeper_第4頁](http://file4.renrendoc.com/view2/M00/35/10/wKhkFmazegCAEnSSAAICrnJ49m44304.jpg)
![《大數(shù)據(jù)與云計算》課件-10.Zoo Keeper_第5頁](http://file4.renrendoc.com/view2/M00/35/10/wKhkFmazegCAEnSSAAICrnJ49m44305.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
大數(shù)據(jù)與云計算智能建造技術(shù)專業(yè)資源庫知識點動物管理員初識ZooKeeper3ZooKeeper工作原理4ZooKeeper特點1什么是ZooKeeper2ZooKeeper工作過程ZooKeeper簡介一、什么是ZooKeeperZooKeeper(動物園管理員)是一個開源的分布式應用程序協(xié)調(diào)服務(wù),是yahoo的管理員借鑒了Google的分布式鎖Chubby的一個開源的實現(xiàn)。Zookeeper作為一個分布式的服務(wù)框架,主要用來解決分布式集群中應用系統(tǒng)的一致性問題。ZooKeeper簡介統(tǒng)一配置文件管理命名服務(wù)分布式鎖集群服務(wù)提供的功能包括:一、什么是ZooKeeperZooKeeper簡介假設(shè)機器A上的進程Pa須向機器B上的進程Pb發(fā)送一個消息,使用ZooKeeper實現(xiàn)時,具體過程是:Pa產(chǎn)生這條消息后將此消息注冊到ZooKeeper中,Pb需要這條消息時直接從ZooKeeper中讀取即可。二、ZooKeeper工作過程ZooKeeper簡介二、ZooKeeper工作過程ZooKeeper簡介值得注意的是ZooKeeper服務(wù)本身也是不可靠的,比如運行ZooKeeper服務(wù)的機器宕機,則此服務(wù)將失效,為提高ZooKeeper可靠性,在使用時ZooKeeper本身一般都以集群方式部署(見圖),其內(nèi)部實現(xiàn)細節(jié)參考下面ZooKeeper工作原理。集群中各臺機器上的ZooKeeper服務(wù)啟動后,它們首先會以少數(shù)服從原則從中選取出一個leader(領(lǐng)導者),其他則作為follower(追隨者),當發(fā)生客戶端讀/寫操作時,規(guī)定讀操作可以在各個節(jié)點上實現(xiàn),寫操作則必須發(fā)送到領(lǐng)導者,并經(jīng)領(lǐng)導者同意才可執(zhí)行寫操作。三、ZooKeeper工作原理ZooKeeper簡介ZooKeeper集群內(nèi)選取領(lǐng)導時,內(nèi)部采用的是原子廣播協(xié)議,此協(xié)議是對Paxos算法的修改與實現(xiàn)。集群內(nèi)各個ZooKeeper服務(wù)選舉領(lǐng)導的核心思想是:由某個新加入的服務(wù)器發(fā)起一次選舉,如果該服務(wù)器獲得n/2+1個票數(shù),則此服務(wù)器將成為整個ZooKeeper集群的領(lǐng)導者。當“領(lǐng)導者”服務(wù)器發(fā)生故障時,剩下的“追隨者”將重新進行新一輪“領(lǐng)導者”選舉。因此,集群中ZooKeeper個數(shù)必須以奇數(shù)出現(xiàn)(3、5、7、9…),并且當構(gòu)建ZooKeeper集群時,最少需3個節(jié)點。三、ZooKeeper工作原理ZooKeeper簡介四、ZooKeeper特點ZooKeeper簡介順序性:包括全局有序和偏序兩種:全局有序是指如果在一臺服務(wù)器上消息a在消息b前發(fā)布,則在所有Server上消息a都將在消息b前被發(fā)布;偏序是指如果一個消息b在消息a后被同一個發(fā)送者發(fā)布,a必將排在b前面。原子性:更新只能成功或者失敗,沒有中間狀態(tài)。統(tǒng)一視圖:無論客戶端連接到哪臺服務(wù)器,都能看到統(tǒng)一的結(jié)果視圖可靠性:具有簡單、健壯、良好的性能,如果消息被到一臺服務(wù)器接受,那么它將被所有的服務(wù)器接受。實時性:系統(tǒng)的客戶視圖保證在特定時間范圍是最新的。課程總結(jié)ZooKeeper簡介ZooKeeper特點:順序性、原子性、統(tǒng)一視圖、可靠性、實時性Zookeeper作為一個分布式的服務(wù)框架,主要用來解決分布式集群中應用系統(tǒng)的一致性問題。提供的功能包括:配置管理、命名服務(wù)、分布式鎖、集群服務(wù)等。ZooKeeper工作過程是一種松耦合交互方式ZooKeeper采用“一主(leader)多從(follower)”的結(jié)構(gòu),當發(fā)生客戶端讀/寫操作時,規(guī)定讀操作可以在各個節(jié)點上實現(xiàn),寫操作則必須發(fā)送到領(lǐng)導者,并經(jīng)領(lǐng)導者同意才可執(zhí)行寫操作。思考:ZooKeeper的功能有哪些?ZooKeeper的讀寫操作是怎樣的?ZooKeeper的有哪些特點?知識點有條不紊ZooKeeper工作初探3ZooKeeper接口1ZooKeeper的數(shù)據(jù)模型2ZooKeeper部署ZooKeeper入門Zookeeper擁有一個和分布式的文件系統(tǒng)非常相似的層次命名空間。
Znode是ZooKeeper中數(shù)據(jù)的最小單元,既像文件一樣維護著數(shù)據(jù)、元信息、訪問控制列表、時間戳等數(shù)據(jù)結(jié)構(gòu),又像目錄一樣可以作為路徑標識的一部分,并可以具有子znode。
用戶對znode具有增、刪、改、查等操作(權(quán)限允許的情況下)。一、ZooKeeper的數(shù)據(jù)模型一、ZooKeeper的數(shù)據(jù)模型每個Znode都有以下三部分組成。Stat:狀態(tài)信息,用于存儲該Znode的版本、權(quán)限、時間戳等信息;Data:實際存儲的數(shù)據(jù);Children:對子節(jié)點的信息描述;zookeeper的設(shè)計主要是用于管理調(diào)度數(shù)據(jù),而不是用于常規(guī)的數(shù)據(jù)庫和數(shù)據(jù)存儲服務(wù)。
每個znode的數(shù)據(jù)大小最大為1M,不過一般情況下,都只會有幾KB。四種類型的Znode節(jié)點,分別對應PERSISTENT_SEQUENTIAL:永久節(jié)點、序列化(Znode的名字后面會自動追加一個不斷增加的序列號)3EPHEMERAL:臨時節(jié)點(生命周期依賴于創(chuàng)建該節(jié)點的會話,當會話結(jié)束的時候,節(jié)點自動刪除,當然也可以手動刪除,另外臨時節(jié)點不能有子節(jié)點。)2PERSISTENT:永久節(jié)點(生命周期不依賴于會話,只有當客戶端顯示刪除的時候,才會被刪除。)1EPHEMERAL_SEQUENTIAL:臨時節(jié)點、序列化4一、ZooKeeper的數(shù)據(jù)模型一、ZooKeeper的數(shù)據(jù)模型Znode的監(jiān)聽器機制ZooKeeper的每個節(jié)點上都有一個Watcher用于監(jiān)控節(jié)點數(shù)據(jù)的變化。當節(jié)點狀態(tài)發(fā)生改變時(Znode新增、刪除、修改)將會觸發(fā)Wahcher所對應的操作。在Watcher被觸發(fā)時,ZooKeeper會向監(jiān)控該節(jié)點的客戶端發(fā)送一條通知說明節(jié)點的變化情況。ZooKeeper可以運行在多種系統(tǒng)平臺上面,下表展示了zk支持的系統(tǒng)平臺。ZooKeeper是用Java編寫的,運行在Java環(huán)境上,因此,在部署zk的機器上需要安裝Java運行環(huán)境。為了正常運行zk,我們需要JRE1.6或者以上的版本。ZooKeeper對于機器的硬件配置沒有太大的要求。例如,在Yahoo!內(nèi)部,ZooKeeper部署的機器其配置通常如下:雙核處理器,2GB內(nèi)存,80GB硬盤。二、ZooKeeper的部署ZooKeeper入門下載安裝zookeeper官網(wǎng):/
下載地址:
/releases.html二、ZooKeeper的部署bin目錄
zk的可執(zhí)行腳本目錄,包括zk服務(wù)進程,zk客戶端等腳本。其中,.sh是Linux環(huán)境下的腳本,.cmd是Windows環(huán)境下的腳本。conf目錄
配置文件目錄。zoo_sample.cfg為樣例配置文件,需要修改為自己的名稱,一般為perties為日志配置文件。lib
zk依賴的包。contrib目錄
一些用于操作zk的工具包。recipes目錄
zk某些用法的代碼示例二、ZooKeeper的部署ZooKeeper可以使用單機模式或集群模式進行部署,下面以集群部署方式進行介紹,部署步驟如下。開啟三臺虛擬機。搭建jdk(參考hadoop集群的搭建,建議搭建在hadoop集群中,它只需要jdk就可以了)。部署規(guī)劃:cSlave0,cSlave1,cSlave2上部署ZooKeeper服務(wù)。下載并安裝ZooKeeper將zookeeper-3.4.5-chd5.3.6.tar.gz上傳到虛擬機中解壓ZooKeepertar–xvfzookeeper-3.4.5-chd5.3.6.tar.gz-c/bigdata)對zookeeper目錄進行重命名(mvzookeeper-3.4.5-chd5.3.6.tar.gzzookeeper)二、ZooKeeper的部署在ZooKeeper目錄下創(chuàng)建data目錄Mkdir/bigdata/zookeeper/data/在data目錄中創(chuàng)建myid文件并寫入123touch/bigdata/zookeeper/data/myidEcho123>>/bigdata/zookeeper/data/myid將123寫入myid文件的首行 在/usr/local/zookeeper/conf/目錄下,修改zoo.cfg4.初始化ZooKeeper。二、ZooKeeper的部署配置ZooKeeper,將下述內(nèi)容追加到/etc/zookeeper/conf/zoo.cfg文件中。zoo.cfg是ZooKeeper的配置文檔,其中ZooKeeper間正常交換信息時使用2888端口,選舉領(lǐng)導時使用3888端口。還須注意的是,cSlave0、cSlave1和cSlave2這三臺機器都要執(zhí)行這個操作,即保持整個集群中ZooKeeper配置相同。二、ZooKeeper的部署6.啟動ZooKeeper服務(wù)。在每個節(jié)點上(cSlave0,cSlave1,cSlave2)啟動ZooKeeper服務(wù),命令為:zkServer.shstart在每個節(jié)點上(cSlave0,cSlave1,cSlave2)查看ZooKeeper狀態(tài),命令為:zkServer.shstatus在每個節(jié)點上(cSlave0,cSlave1,cSlave2)查看ZooKeeper狀態(tài),命令為:zkServer.shstop二、ZooKeeper的部署ZooKeeper主要提供了Shell接口和api編程接口,其中Shell接口提供了管理ZooKeeper最常用的操作,編程接口則更加靈活.三、ZooKeeper的接口ls查看節(jié)點列表命令;用于查看某個路徑下目錄列表。格式:ls、path、#path代表路徑lsls2用于查看某路徑下節(jié)點詳細信息格式:ls2、pathls2create命令用于創(chuàng)建節(jié)點并賦值格式:create、[-s]、[-e]、path、data、acls、-e可選,-s是順序節(jié)點,-e是臨時節(jié)點。data要在此節(jié)點存儲的數(shù)據(jù)create創(chuàng)建節(jié)點命令set命令用于修改節(jié)點存儲的數(shù)據(jù)格式:set、path、dataset更新節(jié)點命令1.Zookeeper常用shell命令三、ZooKeeper的接口get命令用于獲取節(jié)點數(shù)據(jù)和狀態(tài)信息格式:get、path、【watch】,【watch】對節(jié)點進行事件監(jiān)聽get查看節(jié)點命令格式:stat、path、【watch】stat查看節(jié)點狀態(tài)命令delete命令用于刪除某節(jié)點,也可以傳入版本號格式:delete、path、【version】delete刪除節(jié)點命令使用getpath【watch】注冊的監(jiān)聽器,能夠在節(jié)點內(nèi)容發(fā)生改變的時候,向客戶端發(fā)出通知。使用statpath【watch】注冊的監(jiān)聽器,能夠在節(jié)點狀態(tài)發(fā)生改變時,向客戶端發(fā)出通知。使用ls\ls2path【watch】注冊的監(jiān)聽器,能夠監(jiān)聽節(jié)點下所有子節(jié)點的增加和刪除操作。監(jiān)聽器1.Zookeeper常用shell命令三、ZooKeeper的接口ZooeeperAPI共包含五個包,分別為∶
org.apache.zookeeperorg.apache.zookeeper.dataorg.apache.zookeeper.serverorg.apache.zookeeper.server.quorumorg.apache.zookeeper.server.upgrade其中org.apache.zookeeper,包含Zookeeper類,它是編程時最常用的類文件。這個類是Zookeeper客戶端的主要類文件。如果要使用Zookeeper服務(wù),應用程序首先必須創(chuàng)建一個Zooeeper實例,這時就需要使用此類。一旦客戶端和Zookeeper服務(wù)端建立起了連接,Zo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 買貓合同范本
- 中國多普勒血流探測儀市場運行態(tài)勢及行業(yè)發(fā)展前景預測報告
- 業(yè)主房子托管合同范本
- 包材采購合同范例
- 代工生產(chǎn)合同范本
- 勞務(wù)公司與臨時工合同范本
- 鋼結(jié)構(gòu)加工制作合同范本
- 兩層鋪面房屋租賃合同范本
- 重慶城區(qū)房屋出租合同范本
- 農(nóng)業(yè)合作合同范本
- 高一化學教學進度計劃表
- 人教PEP版四年級下冊小學英語全冊同步練習(一課一練)
- 新員工入職培訓考試附答案
- 高校畢業(yè)生就業(yè)見習登記表
- 七年級歷史第5課--安史之亂與唐朝衰亡ppt課件
- 戶外LED顯示屏設(shè)計施工方案.docx
- 包裝材料及紙制品生產(chǎn)建設(shè)項目可行性實施報告
- 財務(wù)收支月報表excel模板
- 國標充電協(xié)議報文整理
- 水餃類產(chǎn)品質(zhì)量檢驗作業(yè)指導書
- 電力變壓器計算單
評論
0/150
提交評論