shell脚本在zookeeper安装根目录的bin/路径下。
使用help查看常用命令
使用 ls 命令来查看某个目录包含的所有文件,例如:
[zk: localhost:2181(CONNECTED) 1] ls /
[zookeeper]
使用 ls2 命令来查看某个目录包含的所有文件,与ls不同的是它查看到其他一些信息,例如:
[zk: localhost:2181(CONNECTED) 2] ls2 /
[zookeeper]
cZxid = 0x0 #节点创建的Zxid
ctime = Thu Jan 01 08:00:00 CST 1970 #节点创建时间
mZxid = 0x0 #节点最新一次更新时的Zxid
mtime = Thu Jan 01 08:00:00 CST 1970 #节点最新一次更新发生时的时间
pZxid = 0x0 #子节点最后一次被修改的zxid
cversion = -1 #其子节点的更新次数
dataVersion = 0 #节点数据的更新次数
aclVersion = 0 #节点ACL授权的更新次数
ephemeralOwner = 0x0 #如果该节点为ephemeral节点, ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是ephemeral节点, ephemeralOwner值为0. 至于什么是ephemeral节点, 请看后面的讲述.
dataLength = 0 #节点数据的字节数
numChildren = 1 #子节点的个数
zxid:致使ZooKeeper节点状态改变的每一个操作都将使节点接收到一个递增的事务id号,并且这个时间戳全局有序。也就是说,也就是说,每个对节点的改变都将产生一个唯一的Zxid。如果Zxid1的值小于Zxid2的值,那么Zxid1所对应的事件发生在Zxid2所对应的事件之前。实际上,ZooKeeper的每个节点维护者三个Zxid值,为别为:cZxid、mZxid、pZxid。
查看节点状态属性,不包含节点数据信息,例如:
[zk: localhost:2181(CONNECTED) 39] stat /
创建znode,并设置初始内容, 默认内容也可以是空串,附加参数 :-s:顺序节点 ,-e:临时节点 例如:
获取znode节点数据,例如:
[zk: localhost:2181(CONNECTED) 17] get /test
修改znode节点内容,修改数据也可携带版本号,修改的时候要么不携带版本号,要么携带的版本号要跟dataVersion的版本号一致,否则就会报错,例如:
删除没有子节点的节点,如果有子节点将报Node not empty: /test 例如:
[zk: localhost:2181(CONNECTED) 36] delete /test
Node not empty: /test
已过时的方法,推荐使用deleteall
删除节点,有子节点一并删除
删除节点,有子节点一并删除
配额,给节点限制值,比如限制子节点个数、节点数据的长度
-n:限制子节点个数
-b:限制值的长度
当创建节点超出配额时,zookeeper不会抛出异常,会在bin/zookeeper.out记录警告信息。
listquota,查看配额,以及节点的配额状态,例如:
再次执行某命令。
如redo 10
其中10为命令ID,需与history配合使用。
由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作。
在获取节点数据、子节点列表等操作时,都可以添加watch参数监听节点的变化,从而节点数据更改、子节点列表变更时收到通知,并输出到控制台。默认是打开,可以设置参数将其关闭。 例如: