一、新增节点
#-s:为有序节点;-e: 临时节点 create [-s] [-e] path data
# 创建hadoop节点并写入数据123: create /jdy "123" [zk: localhost:2181(CONNECTED) 32] ls / [zookeeper, jdy]
[zk: localhost:2181(CONNECTED) 1] create -s /ws "a" Created /ws0000000007 [zk: localhost:2181(CONNECTED) 2] create -s /ws "b" Created /ws0000000008 [zk: localhost:2181(CONNECTED) 3] create -s /ws "c" Created /ws0000000009
[zk: localhost:2181(CONNECTED) 5] create -e /tmp "tmp" Created /tmp
[zk: localhost:2181(CONNECTED) 6] create -s -e /aa 'aaa' Created /aa0000000004 [zk: localhost:2181(CONNECTED) 7] create -s -e /bb 'bbb' Created /bb0000000005 [zk: localhost:2181(CONNECTED) 8] create -s -e /cc 'ccc' Created /cc0000000006set
二、更新节点
set path data [dataVersion]
[zk: localhost:2181(CONNECTED) 10] set /hadoop "3456" 1 version No is not valid : /hadoop
三、删除节点
删除节点的语法如下:
delete path [version]
和更新节点数据一样,也可以传入版本号,当你传入的数据版本号 (dataVersion)和当前节点的数据版本号不符合时,zookeeper 不会执行删除操作。
[zk: localhost:2181(CONNECTED) 36] delete /hadoop 0 version No is not valid : /hadoop #无效的版本号 [zk: localhost:2181(CONNECTED) 37] delete /hadoop 1 [zk: localhost:2181(CONNECTED) 38]
当某个节点有子节点时delete,不能删除该节点,要想删除某个节点及其所有后代节点,可以使用递归删除,命令为 。
rmr path
四、查看节点
get path
状态属性 | 说明 |
---|---|
cZxid | 数据节点创建时的事务 ID |
ctime | 数据节点创建时的时间 |
mZxid | 数据节点最后一次更新时的事务 ID |
mtime | 数据节点最后一次更新时的时间 |
pZxid | 数据节点的子节点最后一次被修改时的事务 ID |
cversion | 子节点的更改次数 |
dataVersion | 节点数据的更改次数 |
aclVersion | 节点的 ACL 的更改次数 |
ephemeralOwner | 如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为 0 |
dataLength | 数据内容的长度 |
numChildren | 数据节点当前的子节点个数 |
五、查看节点状态
可以使用 `stat` 命令查看节点状态,它的返回值和 get 命令类似,但不会返回节点数据。
stat path [watch]
查看节点列表有 ls path 和 ls2 path 两个命令,后者是前者的增强,不仅可以查看指定路径下的所有节点,还可以查看当前节点的信息。
ls path [watch]
ls2 path [watch]
七、监听器get path [watch]
[zk: localhost:2181(CONNECTED) 4] get /hadoop watch [zk: localhost:2181(CONNECTED) 5] set /hadoop 45678 WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop #节点值改变
八、监听器stat path [watch]
使用 stat path [watch] 注册的监听器能够在节点状态发生改变的时候,向客户端发出通知
[zk: localhost:2181(CONNECTED) 7] stat /hadoop watch [zk: localhost:2181(CONNECTED) 8] set /hadoop 112233 WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/hadoop #节点值改变
[zk: localhost:2181(CONNECTED) 9] ls /hadoop watch [] [zk: localhost:2181(CONNECTED) 10] create /hadoop/yarn "aaa" WATCHER:: WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/hadoop