千家信息网

zookeeper cli 常用命令解析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,zookeeper CLI1,查看所有命令启动zookeeper并使用bin目录下的zkCli.sh连接zookeeper服务器,输入任何zookeeper不能识别的命令,zookeeper都会列出所
千家信息网最后更新 2026年11月02日zookeeper cli 常用命令解析

zookeeper CLI

1,查看所有命令

启动zookeeper并使用bin目录下的zkCli.sh连接zookeeper服务器,输入任何zookeeper不能识别的命令,zookeeper都会列出所有可供使用的命令:

[zk: 127.0.0.1:2184(CONNECTED) 105] kZooKeeper -server host:port cmd args        stat path [watch]        set path data [version]        ls path [watch]        delquota [-n|-b] path        ls2 path [watch]        setAcl path acl        setquota -n|-b val path        history         redo cmdno        printwatches on|off        delete path [version]        sync path        listquota path        rmr path        get path [watch]        create [-s] [-e] path data acl        addauth scheme auth        quit         getAcl path        close         connect host:port
2,命令解析

创建节点:
create [-s] [-e] path data acl

-s 有序节点

一个znode还可以设置为有序(sequential)节点。一个有序znode节点被分配唯一个单调递增的整数。当创建有序节点时,一个序号会被追加到路径之后。

-e 临时节点

znode节点可以是持久(persistent)节点,还可以是临时(ephemeral)节点。持久的znode只能通过调用delete来进行删除。临时的znode与之相反,当创建该节点的客户端崩溃或关闭了与ZooKeeper的连接时,这个节点就会被删除。因为临时的znode在其创建者的会话过期时被删除,所以我们现在不允许临时节点拥有子节点。

总之,znode一共有4种类型:持久的(persistent)、临时的(ephemeral)、持久有序的(persistent_sequential)和临时有序的(ephemeral_sequential)。

data 节点保存的数据

acl 权限相关内容,暂不考虑

创建一个持久节点

[zk: 127.0.0.1:2184(CONNECTED) 7] create /test testdataCreated /test[zk: 127.0.0.1:2184(CONNECTED) 8] ls /[zookeeper, test]

创建一个临时节点

[zk: 127.0.0.1:2184(CONNECTED) 9] create -e /testephemeral testdata2Created /testephemeral[zk: 127.0.0.1:2184(CONNECTED) 11] ls /[zookeeper, test, testephemeral]

ctrl+c断开与服务端连接在查看

WatchedEvent state:SyncConnected type:None path:null[zk: 127.0.0.1:2184(CONNECTED) 0] ls /[zookeeper, test]

临时节点已经被移除了

创建有序节点

[zk: 127.0.0.1:2184(CONNECTED) 4] create -s /testsquence testdata2Created /testsquence0000000008[zk: 127.0.0.1:2184(CONNECTED) 5] ls /[testsquence0000000008, zookeeper, test]

它会自动在我们指定的path后面追加一个序列号。

节点状态
stat path [watch]

watch 添加监视器,后面再说

列出节点/test的状态

[zk: 127.0.0.1:2184(CONNECTED) 10] stat /test             cZxid = 0x21ctime = Wed May 08 05:43:54 CST 2019mZxid = 0x21mtime = Wed May 08 05:43:54 CST 2019pZxid = 0x21cversion = 0dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 8numChildren = 0

属性说明

状态属性说明
cZxid节点创建的事务zxid。每次修改ZooKeeper状态都会收到一个zxid形式的时间戳,也就是ZooKeeper事务ID。事务ID是ZooKeeper中所有修改总的次序。每个修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。
ctimeznode的创建时间
mzxidznode最后修改的zxid
mtimeznode最后修改时间
pZxidznode最后更新的子节点zxid
cversionznode子节点变化号,每变化一次就自增1
dataversionznode数据变化号,数据每变化一次就自增1(每次更新读取最新的值,可用于实现类似数据库乐观锁功能)
aclVersionznode访问控制列表的变化号
ephemeralOwner如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0
dataLengthznode的数据长度
dataLengthznode子节点数量

查询数据
get path [watch]

查询节点/test的数据

[zk: 127.0.0.1:2184(CONNECTED) 19] get /testtestdatacZxid = 0x21ctime = Wed May 08 05:43:54 CST 2019mZxid = 0x21mtime = Wed May 08 05:43:54 CST 2019pZxid = 0x21cversion = 0dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 8numChildren = 0

嗯,就是data的值加上状态信息。

列出节点

ls   path [watch]ls2 path [watch]

列出根节点信息

[zk: 127.0.0.1:2184(CONNECTED) 0] ls /[testsquence0000000008, zookeeper, test][zk: 127.0.0.1:2184(CONNECTED) 1] ls2 /[testsquence0000000008, zookeeper, test]cZxid = 0x0ctime = Thu Jan 01 08:00:00 CST 1970mZxid = 0x0mtime = Thu Jan 01 08:00:00 CST 1970pZxid = 0x25cversion = 15dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 0numChildren = 3

ls2 想当于在ls的基础上加上了当前节点的状态信息。

设置数据
set path data [version]

data 要设置的数据

version 数据版本号,当指定的版本号与节点当前数据版本号相同时才设置

设置节点/test数据为newdata

[zk: 127.0.0.1:2184(CONNECTED) 33] set /test newdatacZxid = 0x21ctime = Wed May 08 05:43:54 CST 2019mZxid = 0x28mtime = Wed May 08 06:40:59 CST 2019pZxid = 0x21cversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 7numChildren = 0[zk: 127.0.0.1:2184(CONNECTED) 34] get /test        newdatacZxid = 0x21ctime = Wed May 08 05:43:54 CST 2019mZxid = 0x28mtime = Wed May 08 06:40:59 CST 2019pZxid = 0x21cversion = 0dataVersion = 1aclVersion = 0ephemeralOwner = 0x0dataLength = 7numChildren = 0

有没有发现dataVersion从0变成了1,这个就是和最后一个参数version关联的。

指定一个错误的version更新数据

[zk: 127.0.0.1:2184(CONNECTED) 59] set /test nnn  0version No is not valid : /test

失败......

我们用正确的试试

[zk: 127.0.0.1:2184(CONNECTED) 61] set /test nnn  1                                   cZxid = 0x21ctime = Wed May 08 05:43:54 CST 2019mZxid = 0x2amtime = Wed May 08 06:46:12 CST 2019pZxid = 0x21cversion = 0dataVersion = 2aclVersion = 0ephemeralOwner = 0x0dataLength = 3numChildren = 0

成功了,然后dataVersion又从1变成了2

删除节点

delete path [version]rmr path

version : 版本号,和set命令一样中的意思一样,版本相同才能删。

delete和rmr的不同之处是在有子节点的情况下delete不能删除,而rmr可以级联删除子节点。

使用delete删除/test

[zk: 127.0.0.1:2184(CONNECTED) 73] delete /test                                [zk: 127.0.0.1:2184(CONNECTED) 74] ls /[testsquence0000000008, zookeeper]

使用delete删除一个有子节点的试试

[zk: 127.0.0.1:2184(CONNECTED) 77] create /test tt                   Created /test[zk: 127.0.0.1:2184(CONNECTED) 78] create /test/child ttCreated /test/child[zk: 127.0.0.1:2184(CONNECTED) 80] delete /testNode not empty: /test

是的,不能删除有子节点的

使用rmr删除有子节点的/test试试

[zk: 127.0.0.1:2184(CONNECTED) 85] rmr /test            [zk: 127.0.0.1:2184(CONNECTED) 86] ls /[testsquence0000000008, zookeeper]

删除成功

watch用法

Watch机制: 一个zk的节点可以被监控,包括这个目录中存储的数据的修改,子节点目录的变化,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等。一个Watch事件是一个一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端。

通过ls对节点/test创建一个watch

[zk: 127.0.0.1:2184(CONNECTED) 92] ls /test mywatch[zk: 127.0.0.1:2184(CONNECTED) 94] delete /testWATCHER::WatchedEvent state:SyncConnected type:NodeDeleted path:/test

当删除该节点时我们收到了通知

节点 数据 有序 变化 状态 命令 版本 事务 信息 功能 客户 客户端 时间 目录 更新 服务 相同 成功 就是 属性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州万易互联网科技有限公司 平安科技 互联网 互联网金融科技创新 未来的互联网科技 金融科技和互联网金融 成都玖崟互联网科技有限公司乐商圈怎么样 银川新华互联网科技职业技术培训学校图片 和信科技工业互联网 坤平互联网科技 互联网科技大奖都有哪些公司 卓翼科技产业互联网合作 烟台灵鸽互联网科技有限公司 互联网企业科技类企业如何做账 浙南科技城互联网大厦招聘 下一代互联网重大应用科技园 济南小医互联网科技有限公司招聘 萌小萌互联网科技河南有限公司 世界互联网科技成果奖 互联网科技对化妆品行业 科技互联网专业务虚会材料 科技互联网 江苏根荣互联网科技 科技金融是不是互联网金融 以房互联网科技 汇久创客互联网科技 哈尔滨秒房互联网科技有限公司 农村开互联网科技讲堂 互联网科技公司有风险吗 南博望互联网科技有限公司 广州全民伙伴互联网科技有限公司
0