




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
大數(shù)據(jù)與云計(jì)算智能建造技術(shù)專業(yè)資源庫知識(shí)點(diǎn)動(dòng)物管理員初識(shí)ZooKeeper3ZooKeeper工作原理4ZooKeeper特點(diǎn)1什么是ZooKeeper2ZooKeeper工作過程ZooKeeper簡(jiǎn)介一、什么是ZooKeeperZooKeeper(動(dòng)物園管理員)是一個(gè)開源的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是yahoo的管理員借鑒了Google的分布式鎖Chubby的一個(gè)開源的實(shí)現(xiàn)。Zookeeper作為一個(gè)分布式的服務(wù)框架,主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題。ZooKeeper簡(jiǎn)介統(tǒng)一配置文件管理命名服務(wù)分布式鎖集群服務(wù)提供的功能包括:一、什么是ZooKeeperZooKeeper簡(jiǎn)介假設(shè)機(jī)器A上的進(jìn)程Pa須向機(jī)器B上的進(jìn)程Pb發(fā)送一個(gè)消息,使用ZooKeeper實(shí)現(xiàn)時(shí),具體過程是:Pa產(chǎn)生這條消息后將此消息注冊(cè)到ZooKeeper中,Pb需要這條消息時(shí)直接從ZooKeeper中讀取即可。二、ZooKeeper工作過程ZooKeeper簡(jiǎn)介二、ZooKeeper工作過程ZooKeeper簡(jiǎn)介值得注意的是ZooKeeper服務(wù)本身也是不可靠的,比如運(yùn)行ZooKeeper服務(wù)的機(jī)器宕機(jī),則此服務(wù)將失效,為提高ZooKeeper可靠性,在使用時(shí)ZooKeeper本身一般都以集群方式部署(見圖),其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)參考下面ZooKeeper工作原理。集群中各臺(tái)機(jī)器上的ZooKeeper服務(wù)啟動(dòng)后,它們首先會(huì)以少數(shù)服從原則從中選取出一個(gè)leader(領(lǐng)導(dǎo)者),其他則作為follower(追隨者),當(dāng)發(fā)生客戶端讀/寫操作時(shí),規(guī)定讀操作可以在各個(gè)節(jié)點(diǎn)上實(shí)現(xiàn),寫操作則必須發(fā)送到領(lǐng)導(dǎo)者,并經(jīng)領(lǐng)導(dǎo)者同意才可執(zhí)行寫操作。三、ZooKeeper工作原理ZooKeeper簡(jiǎn)介ZooKeeper集群內(nèi)選取領(lǐng)導(dǎo)時(shí),內(nèi)部采用的是原子廣播協(xié)議,此協(xié)議是對(duì)Paxos算法的修改與實(shí)現(xiàn)。集群內(nèi)各個(gè)ZooKeeper服務(wù)選舉領(lǐng)導(dǎo)的核心思想是:由某個(gè)新加入的服務(wù)器發(fā)起一次選舉,如果該服務(wù)器獲得n/2+1個(gè)票數(shù),則此服務(wù)器將成為整個(gè)ZooKeeper集群的領(lǐng)導(dǎo)者。當(dāng)“領(lǐng)導(dǎo)者”服務(wù)器發(fā)生故障時(shí),剩下的“追隨者”將重新進(jìn)行新一輪“領(lǐng)導(dǎo)者”選舉。因此,集群中ZooKeeper個(gè)數(shù)必須以奇數(shù)出現(xiàn)(3、5、7、9…),并且當(dāng)構(gòu)建ZooKeeper集群時(shí),最少需3個(gè)節(jié)點(diǎn)。三、ZooKeeper工作原理ZooKeeper簡(jiǎn)介四、ZooKeeper特點(diǎn)ZooKeeper簡(jiǎn)介順序性:包括全局有序和偏序兩種:全局有序是指如果在一臺(tái)服務(wù)器上消息a在消息b前發(fā)布,則在所有Server上消息a都將在消息b前被發(fā)布;偏序是指如果一個(gè)消息b在消息a后被同一個(gè)發(fā)送者發(fā)布,a必將排在b前面。原子性:更新只能成功或者失敗,沒有中間狀態(tài)。統(tǒng)一視圖:無論客戶端連接到哪臺(tái)服務(wù)器,都能看到統(tǒng)一的結(jié)果視圖可靠性:具有簡(jiǎn)單、健壯、良好的性能,如果消息被到一臺(tái)服務(wù)器接受,那么它將被所有的服務(wù)器接受。實(shí)時(shí)性:系統(tǒng)的客戶視圖保證在特定時(shí)間范圍是最新的。課程總結(jié)ZooKeeper簡(jiǎn)介ZooKeeper特點(diǎn):順序性、原子性、統(tǒng)一視圖、可靠性、實(shí)時(shí)性Zookeeper作為一個(gè)分布式的服務(wù)框架,主要用來解決分布式集群中應(yīng)用系統(tǒng)的一致性問題。提供的功能包括:配置管理、命名服務(wù)、分布式鎖、集群服務(wù)等。ZooKeeper工作過程是一種松耦合交互方式ZooKeeper采用“一主(leader)多從(follower)”的結(jié)構(gòu),當(dāng)發(fā)生客戶端讀/寫操作時(shí),規(guī)定讀操作可以在各個(gè)節(jié)點(diǎn)上實(shí)現(xiàn),寫操作則必須發(fā)送到領(lǐng)導(dǎo)者,并經(jīng)領(lǐng)導(dǎo)者同意才可執(zhí)行寫操作。思考:ZooKeeper的功能有哪些?ZooKeeper的讀寫操作是怎樣的?ZooKeeper的有哪些特點(diǎn)?知識(shí)點(diǎn)有條不紊ZooKeeper工作初探3ZooKeeper接口1ZooKeeper的數(shù)據(jù)模型2ZooKeeper部署ZooKeeper入門Zookeeper擁有一個(gè)和分布式的文件系統(tǒng)非常相似的層次命名空間。
Znode是ZooKeeper中數(shù)據(jù)的最小單元,既像文件一樣維護(hù)著數(shù)據(jù)、元信息、訪問控制列表、時(shí)間戳等數(shù)據(jù)結(jié)構(gòu),又像目錄一樣可以作為路徑標(biāo)識(shí)的一部分,并可以具有子znode。
用戶對(duì)znode具有增、刪、改、查等操作(權(quán)限允許的情況下)。一、ZooKeeper的數(shù)據(jù)模型一、ZooKeeper的數(shù)據(jù)模型每個(gè)Znode都有以下三部分組成。Stat:狀態(tài)信息,用于存儲(chǔ)該Znode的版本、權(quán)限、時(shí)間戳等信息;Data:實(shí)際存儲(chǔ)的數(shù)據(jù);Children:對(duì)子節(jié)點(diǎn)的信息描述;zookeeper的設(shè)計(jì)主要是用于管理調(diào)度數(shù)據(jù),而不是用于常規(guī)的數(shù)據(jù)庫和數(shù)據(jù)存儲(chǔ)服務(wù)。
每個(gè)znode的數(shù)據(jù)大小最大為1M,不過一般情況下,都只會(huì)有幾KB。四種類型的Znode節(jié)點(diǎn),分別對(duì)應(yīng)PERSISTENT_SEQUENTIAL:永久節(jié)點(diǎn)、序列化(Znode的名字后面會(huì)自動(dòng)追加一個(gè)不斷增加的序列號(hào))3EPHEMERAL:臨時(shí)節(jié)點(diǎn)(生命周期依賴于創(chuàng)建該節(jié)點(diǎn)的會(huì)話,當(dāng)會(huì)話結(jié)束的時(shí)候,節(jié)點(diǎn)自動(dòng)刪除,當(dāng)然也可以手動(dòng)刪除,另外臨時(shí)節(jié)點(diǎn)不能有子節(jié)點(diǎn)。)2PERSISTENT:永久節(jié)點(diǎn)(生命周期不依賴于會(huì)話,只有當(dāng)客戶端顯示刪除的時(shí)候,才會(huì)被刪除。)1EPHEMERAL_SEQUENTIAL:臨時(shí)節(jié)點(diǎn)、序列化4一、ZooKeeper的數(shù)據(jù)模型一、ZooKeeper的數(shù)據(jù)模型Znode的監(jiān)聽器機(jī)制ZooKeeper的每個(gè)節(jié)點(diǎn)上都有一個(gè)Watcher用于監(jiān)控節(jié)點(diǎn)數(shù)據(jù)的變化。當(dāng)節(jié)點(diǎn)狀態(tài)發(fā)生改變時(shí)(Znode新增、刪除、修改)將會(huì)觸發(fā)Wahcher所對(duì)應(yīng)的操作。在Watcher被觸發(fā)時(shí),ZooKeeper會(huì)向監(jiān)控該節(jié)點(diǎn)的客戶端發(fā)送一條通知說明節(jié)點(diǎn)的變化情況。ZooKeeper可以運(yùn)行在多種系統(tǒng)平臺(tái)上面,下表展示了zk支持的系統(tǒng)平臺(tái)。ZooKeeper是用Java編寫的,運(yùn)行在Java環(huán)境上,因此,在部署zk的機(jī)器上需要安裝Java運(yùn)行環(huán)境。為了正常運(yùn)行zk,我們需要JRE1.6或者以上的版本。ZooKeeper對(duì)于機(jī)器的硬件配置沒有太大的要求。例如,在Yahoo!內(nèi)部,ZooKeeper部署的機(jī)器其配置通常如下:雙核處理器,2GB內(nèi)存,80GB硬盤。二、ZooKeeper的部署ZooKeeper入門下載安裝zookeeper官網(wǎng):/
下載地址:
/releases.html二、ZooKeeper的部署bin目錄
zk的可執(zhí)行腳本目錄,包括zk服務(wù)進(jìn)程,zk客戶端等腳本。其中,.sh是Linux環(huán)境下的腳本,.cmd是Windows環(huán)境下的腳本。conf目錄
配置文件目錄。zoo_sample.cfg為樣例配置文件,需要修改為自己的名稱,一般為perties為日志配置文件。lib
zk依賴的包。contrib目錄
一些用于操作zk的工具包。recipes目錄
zk某些用法的代碼示例二、ZooKeeper的部署ZooKeeper可以使用單機(jī)模式或集群模式進(jìn)行部署,下面以集群部署方式進(jìn)行介紹,部署步驟如下。開啟三臺(tái)虛擬機(jī)。搭建jdk(參考hadoop集群的搭建,建議搭建在hadoop集群中,它只需要jdk就可以了)。部署規(guī)劃:cSlave0,cSlave1,cSlave2上部署ZooKeeper服務(wù)。下載并安裝ZooKeeper將zookeeper-3.4.5-chd5.3.6.tar.gz上傳到虛擬機(jī)中解壓ZooKeepertar–xvfzookeeper-3.4.5-chd5.3.6.tar.gz-c/bigdata)對(duì)zookeeper目錄進(jìn)行重命名(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間正常交換信息時(shí)使用2888端口,選舉領(lǐng)導(dǎo)時(shí)使用3888端口。還須注意的是,cSlave0、cSlave1和cSlave2這三臺(tái)機(jī)器都要執(zhí)行這個(gè)操作,即保持整個(gè)集群中ZooKeeper配置相同。二、ZooKeeper的部署6.啟動(dòng)ZooKeeper服務(wù)。在每個(gè)節(jié)點(diǎn)上(cSlave0,cSlave1,cSlave2)啟動(dòng)ZooKeeper服務(wù),命令為:zkServer.shstart在每個(gè)節(jié)點(diǎn)上(cSlave0,cSlave1,cSlave2)查看ZooKeeper狀態(tài),命令為:zkServer.shstatus在每個(gè)節(jié)點(diǎn)上(cSlave0,cSlave1,cSlave2)查看ZooKeeper狀態(tài),命令為:zkServer.shstop二、ZooKeeper的部署ZooKeeper主要提供了Shell接口和api編程接口,其中Shell接口提供了管理ZooKeeper最常用的操作,編程接口則更加靈活.三、ZooKeeper的接口ls查看節(jié)點(diǎn)列表命令;用于查看某個(gè)路徑下目錄列表。格式:ls、path、#path代表路徑lsls2用于查看某路徑下節(jié)點(diǎn)詳細(xì)信息格式:ls2、pathls2create命令用于創(chuàng)建節(jié)點(diǎn)并賦值格式:create、[-s]、[-e]、path、data、acls、-e可選,-s是順序節(jié)點(diǎn),-e是臨時(shí)節(jié)點(diǎn)。data要在此節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)create創(chuàng)建節(jié)點(diǎn)命令set命令用于修改節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)格式:set、path、dataset更新節(jié)點(diǎn)命令1.Zookeeper常用shell命令三、ZooKeeper的接口get命令用于獲取節(jié)點(diǎn)數(shù)據(jù)和狀態(tài)信息格式:get、path、【watch】,【watch】對(duì)節(jié)點(diǎn)進(jìn)行事件監(jiān)聽get查看節(jié)點(diǎn)命令格式:stat、path、【watch】stat查看節(jié)點(diǎn)狀態(tài)命令delete命令用于刪除某節(jié)點(diǎn),也可以傳入版本號(hào)格式:delete、path、【version】delete刪除節(jié)點(diǎn)命令使用getpath【watch】注冊(cè)的監(jiān)聽器,能夠在節(jié)點(diǎn)內(nèi)容發(fā)生改變的時(shí)候,向客戶端發(fā)出通知。使用statpath【watch】注冊(cè)的監(jiān)聽器,能夠在節(jié)點(diǎn)狀態(tài)發(fā)生改變時(shí),向客戶端發(fā)出通知。使用ls\ls2path【watch】注冊(cè)的監(jiān)聽器,能夠監(jiān)聽節(jié)點(diǎn)下所有子節(jié)點(diǎn)的增加和刪除操作。監(jiān)聽器1.Zookeeper常用shell命令三、ZooKeeper的接口ZooeeperAPI共包含五個(gè)包,分別為∶
org.apache.zookeeperorg.apache.zookeeper.dataorg.apache.zookeeper.serverorg.apache.zookeeper.server.quorumorg.apache.zookeeper.server.upgrade其中org.apache.zookeeper,包含Zookeeper類,它是編程時(shí)最常用的類文件。這個(gè)類是Zookeeper客戶端的主要類文件。如果要使用Zookeeper服務(wù),應(yīng)用程序首先必須創(chuàng)建一個(gè)Zooeeper實(shí)例,這時(shí)就需要使用此類。一旦客戶端和Zookeeper服務(wù)端建立起了連接,Zo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于人因工程學(xué)的醫(yī)療轉(zhuǎn)運(yùn)擔(dān)架設(shè)計(jì)研究
- 腸道疾病知識(shí)傳播途徑
- 介入血管拔鞘與傷口護(hù)理講課件
- 基于深度學(xué)習(xí)的香蕉植株自動(dòng)識(shí)別與計(jì)數(shù)方法
- 一次未來的探險(xiǎn)之旅想象作文(9篇)
- 中國(guó)古建筑特點(diǎn)與審美價(jià)值解析:初中歷史與文化課程教案
- 綠色信貸政策對(duì)環(huán)境敏感型上市公司價(jià)值的影響研究
- EPA對(duì)奶牛卵巢顆粒細(xì)胞增殖、凋亡及內(nèi)分泌機(jī)能的作用及其機(jī)制研究
- 辯論賽上的精彩時(shí)刻議論文14篇
- 腹部微創(chuàng)外科
- 中醫(yī)診斷學(xué)考點(diǎn)總結(jié)
- 生態(tài)草場(chǎng)使用權(quán)轉(zhuǎn)讓協(xié)議
- 第18課清朝的邊疆治理教學(xué)設(shè)計(jì)-統(tǒng)編版七年級(jí)歷史下冊(cè)
- 物流實(shí)操試題及答案詳解
- 播出設(shè)備檢修管理制度
- 國(guó)家開放大學(xué)學(xué)習(xí)網(wǎng)電大證券投資分析形考任務(wù)12345答案
- 醫(yī)院醫(yī)保獎(jiǎng)懲管理制度
- 大件貨物運(yùn)輸合同范本
- 2025年中級(jí)經(jīng)濟(jì)師之中級(jí)經(jīng)濟(jì)師金融專業(yè)題庫練習(xí)試卷A卷附答案
- Python數(shù)據(jù)科學(xué)與機(jī)器學(xué)習(xí)結(jié)合試題及答案
- 海鮮水產(chǎn)電商商業(yè)計(jì)劃書
評(píng)論
0/150
提交評(píng)論