一、环境
JDK 1.8
zookeeper-3.4.12 登录官网找到相应下载地址 http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.12/
二、安装(单机模式)
1)解压下载好的gz包到对应目录。
2)zookeeper的启动方式主要为三种:单机模式、集群模式和伪分布式集群(一台机器启动多个zookeeper),先来示范单机模式。
3)复制D:\zookeeper-3.4.12\conf\zoo_sample.cfg 为D:\zookeeper-3.4.12\conf\zoo.cfg 修改如下
4)找到安装的bin目录如D:\zookeeper-3.4.12\bin
5)通过zkCli.cmd访问 -server为连接指令 输入ip:端口
三、常用命令
连接上控制台后可以通过以下常用命令操作。
1)h(help):查看帮助
2)ls:列出某一节点下的子节点信息、ls2:列出当前节点的子节点,同时列出节点状态。
3)create:创建节点
-s:顺序节点
-e:临时节点 (会话退出后删除节点)
如:create /data "myData"
4)get:获取当前节点存储的数据内容
如:get /data
5)stat:查看节点的状态信息
czxid:节点被创建的事务ID
ctime: 创建时间
mzxid: 最后一次被更新的事务ID
mtime: 修改时间
pzxid:子节点列表最后一次被更新的事务ID
cversion:子节点的版本号
dataversion:数据版本号
aclversion:权限版本号
ephemeralOwner:用于临时节点,代表临时节点的事务ID,如果为持久节点则为0
dataLength:节点存储的数据的长度
numChildren:当前节点的子节点个数
6)set:修改节点数据,可携带版本号
如:set /data "modifyData"
7)delete:删除节点,只能删除没有子节点的节点
如:delete /data
8)rmr:递归删除节点(含子节点)
如:rmr /data
9)setquota:设置配额
给节点限制值,比如限制子节点个数、节点数据的长度(当创建节点超出配额时,zookeeper不会抛出异常,会在zookeeper.out记录警告信息)
-n:限制子节点个数
-b:限制值的长度
10)listquota:查看配额,以及节点的配额状态。delquota:删除配额。
四、伪分布式
zookeeper集群一般为奇数台、master选举通常没半数以上通过。
1)复制三份zookeeper应用
2)创建三个zk目录用于存放myid文件(标示zookeeper应用id)分别在myid文件中输入1、2、3
3)依次修改配置文件 D:\zookeeper-3.4.12 - 1\conf、D:\zookeeper-3.4.12 - 2\conf、D:\zookeeper-3.4.12 - 3\conf
server.X=ip:A:B 这里解释一下,X为对应dataDir下的myid文件中的值,A为该zk和zk集群中的leader通信端口,B为leader挂掉后leader的选举通信窗口。
4)分别进入zk的bing目录,启动三个zk服务,方法和之前一样,进入cmd执行zkServer.cmd。会报错,因为zk的master的选举需要半数以上的节点通过。
5)三台都启动完成后,异常消失,启动cli进行操作验证,我们连接2181端口进行验证。
五、总结
简单介绍了一下zookeeper的安装和控制台的简单实用,zookeeper的内容远不止于此,如ACL相关权限的相关知识,leader选举协议等等,感兴趣的可以深入研究。通常来说我们打交道最多的就是znode节点。