本文主要介绍了在zookeeper中日常用到的命令行操作
更新于 2021-04-17
登录zookeeper shell
使用如下命令连接本地的zookeeper:
1 | bin/zkCli.sh |
节点操作
查看节点
使用下面的命令查看都有哪些节点:
1 | [zk: localhost:2181(CONNECTED) 1] ls / |

默认只有一个zookeeper节点
创建一个节点
1 | [zk: localhost:2181(CONNECTED) 9] create /workers "" |
当创建/workers节点后指定了一个空字符串(“”),说明此刻不希望在这个znode中保存数据。然而,该接口中的这个参数可以使我们保存任何字符串到ZooKeeper的节点中。比如,可以替 换””为”workers”。
创建带序号的节点
如果此时再次支执行create /workers "",则会报错:Node already exists,此时可以使用-s参数表示创建一个带序号的节点:
1 | [zk: localhost:2181(CONNECTED) 9] create -s /workers "" |
带序号的节点会把序号追加到节点名字后且全局唯一
创建临时节点
在create的时候使用-e可以创建临时节点:
1 | [zk: localhost:2181(CONNECTED) 9] create -e /tmpnode "" |
当创建临时节点的会话中断之后,临时节点就会消失;
注册到节点
通知客户端zookeeper节点数据变化是zookeeper的一个重要功能,使用如下的命令可以将当前会话注册到zookeeper:
1 | [zk: localhost:2181(CONNECTED) 9] ls -w / |
-w表示watch,意思是监控当前的节点,如果节点发生变化则会被zookeepr通知
此时如果/节点发生了变化,则这个会话会收到通知:WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/
查看节点状态
使用下面的命令可以查看节点的状态:
1 | [zk: localhost:2181(CONNECTED) 9] state /workers |
其中会输出如下内容:
czxid:创建节点的事物id;ctime:创建该节点的时间;mZxid:修改该节点的事物id;pZxid:最后一次修改子节点的zxid;cversion:子节点修改次数;dataversion:当前节点修改次数;aclVersion:访问控制列表变化的次数;
删除节点
1 | [zk: localhost:2181(CONNECTED) 11] delete /workers |
delete只能删除没有子节点的节点,如果要递归删除则使用deleteall:
1 | [zk: localhost:2181(CONNECTED) 11] deleteall /workers |
退出shell
1 | [zk: localhost:2181(CONNECTED) 13] quit |
