zookeeper使用全解

一.Zookeeper是什么?

ZooKeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是GoogleChubby一个开源的实现,也是HadoopHbase的重要组件。

二.Zookeeper的使用场景:

  1. 数据发布订阅
  2. 负载均衡
  3. 命名服务
  4. Master选举
  5. 集群管理
  6. 配置管理
  7. 分布式队列
  8. 分布式锁

三.Zookeeper单节点的安装:

  1. 下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/
  2. 下载解压后目录结构:
  • bin              存放系统脚本
  • conf            存放配置文件
  • contrib        zk附加功能支持
  • dist-maven  maven仓库文件
  • docs             zk文档
  • lib                依赖的第三方库
  • recipes         经典场景样例代码
  • src                zk源码

3.在conf路径下复制一份zoo_sample.cfg文件,并改名为zoo.cfg

4.然后进入bin目录下,双击zkServer.cmd即可启动Zookeeper(注意:如果没有做上面配置文件复制改名zoo.cfg的操作,此处启动操作会闪退)

 

四.Zookeeper集群安装:

1.按照上述安装完单节点以后,进入conf目录,在zoo.cfg文件里面修改下路径dataDir=/soft/data/tmp/zookeeper,加上集群的配置:(这里的IP配置上你不同服务的IP地址)

service.0=192.168.244.100:2888:3888

service.1=192.168.244.101:2888:3888

service.2=192.168.244.103:2888:3888

2.然后进入你的dataDir路径,如果没有这个路径的话,自己创建一个:mkdr -p  /soft/data/tmp/zookeeper;进入这个目录cd   /soft/data/tmp/zookeeper 向这个目录写入一个内容为0的myid文件: echo 0 > myid。配置完成以后,其他几个节点服务器也按照这个方式配置,不过后面2个节点需要分别写入myid为1和2对应配置文件里面的service.0,service.1,service.2

3.然后启动服务即可:zkServer.sh start(刚开始启动第一个节点的时候查看状态的时候是没有起来的zkServer.sh stauts查看状态是not running的,直到启动从节点follower以后查看主节点leader才会起来

五.Zookeeper的特性

1.会话( session

    客户端与服务端的一次会话连接,本质是TCP长连接,通过会话可以进行心跳检测和数据传输;

2.数据节点( znode
(1)树形,特性:
1) Zookeeper 中, znode 是一个跟 Unix 文件系统路径相似的节点,可以往这个节点存储或获取数据
2) 通过客户端可对 znode 进行增删改查的操作,还可以注册 watcher 监控 znode 的变化。
  • (2)Zookeeper节点类型:

持久节点(PERSISTENT):关闭服务器之后还存在

持久顺序节点(PERSISTENT_SEQUENTIAL):因为每次创建都有顺序,所以可以创建多个

临时节点(EPHEMERAL):关闭服务器之后再开就没了

临时顺序节点(EPHEMERAL_SEQUENTIAL):

(3) Zookeeper 节点状态重要属性
emphemeralOwner:如果此节点为临时节点,那么它的值为这个节点拥有者的会话 ID ;否则,它的值为 0
numChildren:节点拥有的子节点个数
 
3.版本
4.Watcher

   事件监听器,客户端可以在节点上注册监听器,当特定的事件发生后,zk会通知到感兴趣的客户端;eventType: NodeCreatedNodeDeletedNodeDataChangedNodeChildrenChange

5.ACL

    Zk采用ACLaccess control lists)策略来控制权限,5中权限:createreadwritedeleteadmin

6.集群角色
 

六.Zookeeper服务端常用命令

启动ZK服务:       sh bin/zkServer.sh start ·

查看ZK服务状态sh bin/zkServer.sh status · 

停止ZK服务:       sh bin/zkServer.sh stop · .

重启ZK服务:       sh bin/zkServer.sh restart 

七.Zookeeper客户端常用命令

使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。 命令行工具的一些简单操作如下: 

1.显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容 

2.显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据 

3.创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串 

4.获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串 

5.修改文件内容: set /zk "zkbak对 zk 所关联的字符串进行设置 ·

6.删除文件: delete /zk 将刚才创建的 znode 删除,如果存在子节点删除失败 

7.递归删除:rmr  /zk将刚才创建的 znode 删除,子节点同时删除

8.退出客户端: quit ·

9.帮助命令: help

 

 

 

你可能感兴趣的:(zookeeper使用全解)