尚硅谷大數(shù)據(jù)技術之zookeeper_第1頁
尚硅谷大數(shù)據(jù)技術之zookeeper_第2頁
尚硅谷大數(shù)據(jù)技術之zookeeper_第3頁
尚硅谷大數(shù)據(jù)技術之zookeeper_第4頁
尚硅谷大數(shù)據(jù)技術之zookeeper_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

(作者:大海哥—Zookeeper

31服務端啟動時去 2獲取到當前 客戶端客戶端 客戶端ZookeeperZookeeperLeader全局數(shù)據(jù)一致:每個server保存一份相同的數(shù)據(jù)副本, ZooKeeperUnix文件系統(tǒng)很類似,整體上可以看作是一棵樹,每個節(jié)點稱做一個ZNode。每一個ZNode默認能夠1MB的數(shù)據(jù),每個ZNode都可以通過

Zookeeper/

比如Hadoop集群。

Zookeeper Config //1 服務器服務器服務器1服務端啟動時 服務器數(shù)數(shù)數(shù)數(shù)2)截二Zookeeper[atguigu@hadoop102software]$odu+xzookeeper-[atguigu@hadoop102software]$tarzxvfzookeeper-3.4.10.tar.gzCopt/module/ 上創(chuàng)建zkData文件[atguigu@hadoop102zookeeper-3.4.10]$mkdirzkData3)操作zookeeper啟動4020Jps4001ZooKeeperJMXenabledbydefaultMode:standalone[zk:localhost:2181(CONNECTED)0]停止時時間是3)syncLimit=5:Leader和Follower同步通信時限 三 3.1機半數(shù)機制(Paxos協(xié)議):集群中半數(shù)以上機器存活,集群可用。所以是有一個節(jié)點為leader,其他則為follower,Leader是通過 ZookeeperZookeeper以它的狀態(tài)一直是LOOKING狀態(tài)。由于兩者都沒有數(shù)據(jù),所以id值較大的服務器2勝出,但是由于沒有達到超過半數(shù)以上的服務器都同意它(這個例子中的半數(shù)以上是3),所以服務器1、2還是繼續(xù)保持LOOKING狀態(tài)。而與上面不同的是,此時有三臺服務器了它,所以它成為了這次的leader。 節(jié)點(默認是persistent 客戶端與zookeeper 客戶端與zookeeper 器,由父節(jié)點順序號推斷的順序czxid-引起這個znodezxidIDZooKeeperzxidzxid1于zxid2,那么zxid1在zxid2之前發(fā)生。2)ctime-znode被創(chuàng)建的毫秒數(shù)(1970年開始)3)mzxid-znode最后更新的zxid4)mtimeznode最后修改的毫秒數(shù)(1970年開始)5)pZxid-znode最后更新的子節(jié)點zxiddataversionznodeephemeralOwner-znodesessionid。如果不是臨時節(jié)點則是0。numChildrenznode1Main()

2創(chuàng)建62創(chuàng)建6的器列4 5“/”31)原理詳解首先要有一個main()網(wǎng)絡連接通信 ),一個負責(listener)通過connect線程將的發(fā)送給Zookeeper在Zookeeper的器列表中將的添加到列表中。5)Zookeeper到有數(shù)據(jù)或路徑變化,就會將這個消息發(fā)送給listener線程。6)

(1)節(jié)點數(shù)據(jù)的變化getpathlspath四Zookeeper解壓zookeeper安裝包到 [atguigu@hadoop102software]$tar-zxvfzookeeper-3.4.10.tar.gz-C mkdir-pzkData重命名/opt/module/zookeeper-3.4.10/conf這個 mvzoo_sample.cfgzoo.cfg配置zoo.cfg 就是A的值,Zookeeper啟動時此文件,拿到里面的數(shù)據(jù)與zoo.cfg里面的配置信息比在/opt/module/zookeeper-3.4.10/zkDatamyid vi拷貝配置好的zookeeper scp-rzookeeper-3.4.10/ [root@hadoop102zookeeper-3.4.10]#bin/zkServer.shstart[root@hadoop103zookeeper-3.4.10]#bin/zkServer.shstart[root@hadoop104zookeeper-3.4.10]#bin/zkServer.shstartJMXenabledbydefaultMode:followerJMXenabledbydefaultMode:leaderJMXenabledbydefaultMode:follower-s-e臨時(重啟或者超 ls2pathls命令來查看當前znodelspathgetpath[zk:localhost:2181(CONNECTED)1]查看當前znode[zk:localhost:2181(CONNECTED)0]ls/[zk:localhost:2181(CONNECTED)1]ls2/cZxid=ctime=ThuJan0108:00:00CST1970mZxid=0x0mtime=ThuJan0108:00:00CST1970pZxid=0x0cversion=-aclVersion=0dataLength=0[zk:localhost:2181(CONNECTED)2]create/app1 oCreated[zk:localhost:2181(CONNECTED)4]create/app1/server101"01"Created/app1/server101[zk:localhost:2181(CONNECTED)6]get/app1oapp1cZxid= ctime=MonJul1716:08:35CST2017mZxid=0x mtime=MonJul1716:08:35CST2017pZxid=0x cversion=aclVersion=0dataLength=10numChildren=[zk:localhost:2181(CONNECTED)8]get/app1/server101cZxid= ctime=MonJul1716:11:04CSTmZxid= mtime=MonJul1716:11:04CST2017pZxid=0x cversion=aclVersion=0dataLength=13[zk:localhost:2181(CONNECTED)9]create-e/app-emphemeral[zk:localhost:2181(CONNECTED)10]ls/[app1,app-emphemeral,zookeeper][zk:localhost:2181(CONNECTED)12]quit(3)再次查看根 [zk:localhost:2181(CONNECTED)0]ls/[app1,zookeeper][zk:localhost:2181(CONNECTED)11]create/app2[zk:localhost:2181(CONNECTED)13]create-s/app2/aa888Created/app2/aa[zk:localhost:2181(CONNECTED)14]create-s/app2/bb888Created/app2/bb[zk:localhost:2181(CONNECTED)15]create-s/app2/ccCreated[zk:localhost:2181(CONNECTED)16]create-s/app1/aa888Created/app1/aa[zk:localhost:2181(CONNECTED)2]setapp1999[zk:localhost:2181(CONNECTED)26]get/app1[zk:localhost:2181(CONNECTED)5]set [zk:localhost:2181(CONNECTED)1]ls/app1watch ,server101][zk:localhost:2181(CONNECTED)6]create/app1/bb666Created/app1/bb[zk:localhost:2181(CONNECTED)4]delete[zk:localhost:2181(CONNECTED)7]rmrapp2[zk:localhost:2181(CONNECTED)12]stat/app1cZxid=0x ctime=MonJul1716:08:35CST2017mZxid=0xmtime=MonJul1716:54:38CST2017pZxid=0x cversion=aclVersion=0dataLength=3numChildren=解壓zookeeper-3.4.10.tar.gz3)拷貝zookeeper-3.4.10.jar、jline-0.9.94.jar、log4j-1.2.16.jar ty-3.10.5.Final.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-1.6.1.jar到工程的lib 。并build一下,導入工程。4)拷貝perties文件到項目根privatestaticStringprivatestaticStringconnectString=privatestaticintsessionTimeout=privateZooKeeper =publicvoidinit() ception=newZooKeeper(connectString,sessionTimeout,new{//收 通知后的回調(diào)函數(shù)(用戶的業(yè)務邏輯//try }catch(Exception{}}////publicvoidcreate() ception//123參數(shù)4:節(jié)點的類型 }////publicvoidgetChildren() .getChildren("/",for(Stringchild:{}//}//znode//znodepublicvoidexist() ceptionStatstatStatstat=.exists("/eclipse",System.out.println(stat==null?"notexist":}服務器服務器服務器1服務端啟動時 取到當 服務器列表客戶端[zk:localhost:2181(CONNECTED)10]create/servers"servers"Created/serversimportimportorg.apache.zookeeper.CreateMode;importorg.apache.zookeeper.Watcher;importorg.apache.zookeeper.ZooKeeper;importorg.apache.zookeeper.ZooDefs.Ids;publicclassDistributeServer privatestaticintsessionTimeout=2000;privateZooKeeperzk=null;privateStringparentNode=//zkpublicvoidgetConnect()throwszk=newZooKeeper(connectString,sessionTimeout,new{}} publicvoidregistServer(Stringhostname) Ids.OPEN_ACL_UNSAFE,CreateMode.EPHEMERAL_SEQUENTIAL);System.out.println(hostname+"isnoline"+}//publicvoidbusiness(Stringhostname)Exception{System.out.println(hostname+"isworking}publicstaticvoidmain(String[]args) ception//zkDistributeServerserver=newDistributeServer();//利用zk連 ////}}importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importorg.apache.zookeeper.Watcher;importorg.apache.zookeeper.ZooKeeper;publicclass =privatestaticintsessionTimeout=2000;privateZooKeeperzk=null;privateStringparentNode=//zkpublicvoidgetConnect()throwsIOException//try}catch(Exception{}}}publicvoidgetServerList(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論