尚硅谷大数据技术之zookeeper_第1页
尚硅谷大数据技术之zookeeper_第2页
尚硅谷大数据技术之zookeeper_第3页
尚硅谷大数据技术之zookeeper_第4页
尚硅谷大数据技术之zookeeper_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(作者:大海哥—Zookeeper

31服务端启动时去 2获取到当前 客户端客户端 客户端ZookeeperZookeeperLeader全局数据一致:每个server保存一份相同的数据副本, ZooKeeperUnix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够1MB的数据,每个ZNode都可以通过

Zookeeper/

比如Hadoop集群。

Zookeeper Config //1 服务器服务器服务器1服务端启动时 服务器数数数数2)截二Zookeeper[atguigu@hadoop102software]$odu+xzookeeper-[atguigu@hadoop102software]$tarzxvfzookeeper-3.4.10.tar.gzCopt/module/ 上创建zkData文件[atguigu@hadoop102zookeeper-3.4.10]$mkdirzkData3)操作zookeeper启动4020Jps4001ZooKeeperJMXenabledbydefaultMode:standalone[zk:localhost:2181(CONNECTED)0]停止时时间是3)syncLimit=5:Leader和Follower同步通信时限 三 3.1机半数机制(Paxos协议):集群中半数以上机器存活,集群可用。所以是有一个节点为leader,其他则为follower,Leader是通过 ZookeeperZookeeper以它的状态一直是LOOKING状态。由于两者都没有数据,所以id值较大的服务器2胜出,但是由于没有达到超过半数以上的服务器都同意它(这个例子中的半数以上是3),所以服务器1、2还是继续保持LOOKING状态。而与上面不同的是,此时有三台服务器了它,所以它成为了这次的leader。 节点(默认是persistent 客户端与zookeeper 客户端与zookeeper 器,由父节点顺序号推断的顺序czxid-引起这个znodezxidIDZooKeeperzxidzxid1于zxid2,那么zxid1在zxid2之前发生。2)ctime-znode被创建的毫秒数(1970年开始)3)mzxid-znode最后更新的zxid4)mtimeznode最后修改的毫秒数(1970年开始)5)pZxid-znode最后更新的子节点zxiddataversionznodeephemeralOwner-znodesessionid。如果不是临时节点则是0。numChildrenznode1Main()

2创建62创建6的器列4 5“/”31)原理详解首先要有一个main()网络连接通信 ),一个负责(listener)通过connect线程将的发送给Zookeeper在Zookeeper的器列表中将的添加到列表中。5)Zookeeper到有数据或路径变化,就会将这个消息发送给listener线程。6)

(1)节点数据的变化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启动时此文件,拿到里面的数据与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{//收 通知后的回调函数(用户的业务逻辑//try }catch(Exception{}}////publicvoidcreate() ception//123参数4:节点的类型 }////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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论