前言
在前一篇博客(初识zookeeper)的基础上总结zookeeper的简单命令(命令窗口模式下)。
1、连接zookeeper
进入zookeeper的安装目录,进入bin(在任意一台虚拟机上都可以)。执行zkCli.sh脚本就可以,当然也可以指定你需要连接的服务器地址,sh zkCli.sh -server [服务器ip]:2181(这个是配置文件中的客户端端口号,默认是2181)。
看到如下语句表示连接成功:
2、zookeeper的数据结构和节点类型
数据结构
其实zookeeper的数据结构比较简单,类似windows系统中的文件管理结构。
1、每个目录就叫znode,同级目录下节点名称要保持唯一性(就是同级下不能同名)
2、znode可以有子节点,但是临时节点不能有子节点。
3、一个znode节点中可以有多个子节点
4、临时节点在失去会话的时候,会自动删除。
5、znode会被监控,节点的修改,删除,都会被监控。
节点类型
节点类型大体上分为两种,一种是持久化节点,另一种是临时节点。每一种节点下面又分为顺序节点和非顺序节点。因此总的就有四种
1、持久化节点,2、持久化顺序编号节点,3、临时节点,4、临时顺序编号节点。
3、客户端命令
ls --查看某个目录的所有文件,ls2 --查看某个目录包含的所有文件,并列出time,version等信息
这里涉及到节点的几个属性,这里统一整理一下
| 属性 | 含义 |
|---|---|
| cZxid | 创建节点的事务id |
| mZxid | 对zNode最近修改的zxid |
| ctime | 以距离时间原点(epoch)的毫秒数表示的znode创建时间 |
| mtime | 以距离时间原点(epoch)的毫秒数表示的znode最近修改时间 |
| version | znode数据的修改次数 |
| cversion | znode子节点修改次数 |
| aversion | znode的ACL修改次数 |
| ephemeralOwner | 如果znode是临时节点,则指示节点所有者的会话id,如果不是临时节点则为0 |
| dataLength | znode数据长度 |
| numChildren | znode子节点个数 |
create --创建一个znode,并设置初试内容 例:create /test "test"
这个没啥可说的
get --获取znode的数据节点信息,例如 get /test
set --修改znodeneirong内容,例如:set /test "somebody"
修改后,上面的相关属性都有了变化,mZxid,dataVersion都有了些许变化
delete --删除节点数据,例如:delete /test