大数据(六)---------Zookeeper详解

zookeeper是什么?

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等

zookeeper集群创建:

①上传zookeeper包,解压:tar  -xf  zookeeper-3.4.6.tar.gz,移动zookeeper到/opt/sxt目录下:mv  zookeeper-3.4.6 /opt/sxt

②配置zookeeper的环境变量:  vi /etc/profile               一定要在Path里面引入

    

③配置zookeeper的配置文件:

     进入zookeeper家目录中conf目录下,可看到一个zoo_sample.cfg文件
     拷贝重命名:cp  zoo_sample.cfg   zoo.cfg
     配置zoo.cfg: vi  zoo.cfg

     

     

     2888端口:提供zookeeper对外通信

     3888端口:当leader挂掉之后,重新选择leader的时候提供对外通信

④进入数据目录/var/sxt/zk

     执行:echo 1 > myid  echo 2 > myid   echo  3  >  myid   分别在node02  node03  node04操作

     (就是创建myid文件在服务器1,2,3分别追加1,2, 3, 代表各自zookeeper的id,跟上边zookeeper配置文件一一对应)

⑤从node02向node03/node04分发:scp -r  zookeeper-3.4.6/  node04:`pwd` (发动到当前目录,即目标目录与源目录相同;也      可以自定,以"/"开始)

   还需要注意,分发的目录后一定要加(zookeeper-3.4.6/),否则就是把该目录的内容发过去,目录名称不会分发!!!

⑥上一步操作主要是在集群的其他服务器上把已经弄好的zookeeper发过去,也可以在XShell上同时配置3个服务器

    

⑦启动zookeeper集群:

     在每台服务器上分别执行:zkServer.sh start

⑧查看zookeeper集群个节点的启动状态:zkServer.sh  status

    如果显示一个leader,两个follower,代表集群搭建成功

   

   

   

zookeeper的几个机制:

 ①选举机制       ②原子广播和zab协议      ③监听机制(watch)

zookeeper的3个角色:

   leader:领导者,发起一个请求,并且投票

   follower:跟从者,响应leader的请求并发起投票

   observer:监视leader,并将leader的状态告诉follower

Znode是zookeeper存储数据的数据单元:

     它有3种类型:

     持久:永远存在,zookeeper几遍重启也不会丢失

     临时:当客户端创建了Znode,只被这个客户端占有使用;一旦客户端停止,断开,临时的znode会被删除

     顺序:防止名字冲突;节点后会跟随一个10位数字的顺序号

持久节点---默认

临时节点:  -e

持久顺序节点:  -s

临时顺序节点:  -e  -s

Zookeeper特点:

     最终一致性:为客户端展示同一个视图

     可靠性:如果消息被一台服务器接受,那么它将被所有的服务器接受

     实时性:Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口

     独立性:各个Client之间互不干预

     原子性:更新只能成功或者失败,没有中间状态

     顺序性:所有Server,同一消息发布顺序一致

zab协议:

     广播模式---已经选举出来的leader,开始对外提供服务--------原子广播

     恢复模式---还没有leader(集群刚启动/leader死了新的还没起来)

     LOOKING:当前Server不知道leader是谁,正在搜寻

     LEADING:当前Server即为选举出来的leader

     FOLLOWING:leader已经选举出来,当前Server与之同步

原则:过半原则(一半以上通过),所以我们的zookeeper节点最好是单数,<=255

注意点:
        ①、在启动集群时候关闭防火墙
        ②、myid对应
        ③、三台节点同时启动,启动之后再有节点挂掉无所谓

zookeeper的命令操作:

启动客户端命令:zkCli.sh  -server  192.168.xxx.xxx:2181

ls  / : 列出“/”下面的其它的节点

create -e /name1  xiaozhang   创建临时节点,用quit命令退出或结束会话节点消失

create -s  /name2 xiaowang       创建顺序节点

creae -e -s  /name3  xiaoli   创建临时数据节点

get /name   通过名字获取节点

rmr /name   删除指定名字的节点

set /name3  xiaoxiao  设置节点内容

通过eclipse与zookeeper集群创建连接:
        Zookeeper zk=new zookeeper("IP:端口号" ,timeout,watcher);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值