Zookeeper客户端常用命令
Zookeeper 客户端常用的 shell 命令
Zookeeper 客户端常用的 shell 命令
概览
命令基本语法 | 功能描述 |
---|---|
help | 显示所有操作命令 |
ls path | 使用 ls 命令来查看当前 znode 的子节点 [可监听] -w 监听子节点变化 -s 附加次级信息 |
create | 普通创建 -s 含有序列 -e 临时(重启或者超时消失) |
get path | 获得节点的值 [可监听] -w 监听节点内容变化 -s 附加次级信息 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
deleteall | 递归删除节点 |
节点的增删改查
连接服务端
不加 -server
就默认连接 localhost
-server
后跟 Zookeeper 服务端的 ip 和端口
bin/zkCli.sh -server hadoop102:2181
创建节点
create 普通创建
-s 含有序列
-e 临时(重启或者超时消失)
# 普通创建:在根节点下创建一个 houge 节点
create /houge
# 含有序列:会自动在 shuaige 后面拼上序列号
create -s /shuaige
# 临时节点:这个 hehe 节点在客户端断开连接时候会消失
create -e /hehe
# 创建一个带值的结点
create /qie hehe
查看节点列表
ls path 使用 ls 命令来查看当前 znode 的子节点
[可监听] -w 监听子节点变化
-s 附加次级信息
[zk: hadoop102:2181(CONNECTED) 10] ls /
[hehe, houge, qie, shuaige0000000006, zookeeper]
# 附加次级信息
[zk: hadoop102:2181(CONNECTED) 26] ls -s /
[hehe, houge, shuaige0000000006, zookeeper]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x200000012
cversion = 14
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 4
获取节点的值
[zk: hadoop102:2181(CONNECTED) 11] get /qie
hehe
# 加上节点信息
[zk: hadoop102:2181(CONNECTED) 12] get -s /qie
hehe
cZxid = 0x200000015
ctime = Sat May 07 16:34:20 CST 2022
mZxid = 0x200000015
mtime = Sat May 07 16:34:20 CST 2022
pZxid = 0x200000015
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 0
修改节点的值
[zk: hadoop102:2181(CONNECTED) 13] set /qie xixi
[zk: hadoop102:2181(CONNECTED) 14] get /qie
xixi
删除节点
[zk: hadoop102:2181(CONNECTED) 15] ls /
[hehe, houge, qie, shuaige0000000006, zookeeper]
[zk: hadoop102:2181(CONNECTED) 16] delete /houge
[zk: hadoop102:2181(CONNECTED) 17] ls /
[hehe, qie, shuaige0000000006, zookeeper]
递归删除,删除一个非空节点时会提示Node not empty
此时使用 deleteall 命令
[zk: hadoop102:2181(CONNECTED) 18] create /qie/ha
Created /qie/ha
[zk: hadoop102:2181(CONNECTED) 19] ls /
[hehe, qie, shuaige0000000006, zookeeper]
[zk: hadoop102:2181(CONNECTED) 20] delete /qie
Node not empty: /qie
[zk: hadoop102:2181(CONNECTED) 21] deleteall /qie
[zk: hadoop102:2181(CONNECTED) 22] ls /
[hehe, shuaige0000000006, zookeeper]
节点信息参数详解
我们加上 -s
参数的话,会显示节点的详情信息,下面是参数解释:
以下面节点为例:
[zk: hadoop102:2181(CONNECTED) 23] get -s /shuaige0000000006
null
cZxid = 0x20000000f
ctime = Sat May 07 16:24:03 CST 2022
mZxid = 0x20000000f
mtime = Sat May 07 16:24:03 CST 2022
pZxid = 0x20000000f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 0
参数名 | 含义 |
---|---|
cZxid | 创建节点的事务 zxid,每次修改 ZooKeeper 状态都会产生一个 ZooKeeper 事务 ID。事务 ID 是 ZooKeeper 中所有修改总的次序。每次修改都有唯一的 zxid,如果 zxid1 小于 zxid2,那么 zxid1 在 zxid2 之前发生。 |
ctime | 节点创建时间,znode 被创建的毫秒数(从 1970 年开始) |
mZxid | znode 最后更新的事务 zxid |
mtime | 节点修改时间,znode 最后修改的毫秒数(从 1970 年开始) |
pZxid | znode 最后更新的子节点 zxid |
cversion | znode 子节点变化号,znode 子节点修改次数 |
dataVersion | znode 数据变化号 |
aclVersion | znode 访问控制列表的变化号 |
ephemeralOwner | 如果是临时节点,这个是 znode 拥有者的 session id。如果不是 临时节点则是 0。 |
dataLength | znode 的数据长度 |
numChildren | znode 子节点数量 |
节点监听
监听节点内容变化
命令:get -w [path]
# 先建立一个带值的节点
[zk: hadoop102:2181(CONNECTED) 1] create /houge heihei
Created /houge
[zk: hadoop102:2181(CONNECTED) 2] ls /
[houge, shuaige0000000006, zookeeper]
[zk: hadoop102:2181(CONNECTED) 3] get /houge
heihei
# 开启监听节点内容
[zk: hadoop102:2181(CONNECTED) 4] get -w /houge
heihei
# 另一台机器也登到 zk 集群上,修改这个节点内容
[zk: hadoop103:2181(CONNECTED) 3] get /houge
heihei
[zk: hadoop103:2181(CONNECTED) 4] set /houge xixi
# 102 上显示出了监听内容
[zk: hadoop102:2181(CONNECTED) 5]
WATCHER::
WatchedEvent state:SyncConnected type:NodeDataChanged path:/houge
注意:监听生效一次,后续就不会生效了,如果还想监听内容变化,需要再次跑命令监听
监听节点上的路径变化
命令:ls -w [path]
# 启动监听
[zk: hadoop102:2181(CONNECTED) 6] ls -w /houge
[]
# 另一台机器上对路径做修改
[zk: hadoop103:2181(CONNECTED) 6] create /houge/shuaige
Created /houge/shuaige
# 102 上有相应提示
[zk: hadoop102:2181(CONNECTED) 7]
WATCHER::
WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/houge
注意:监听生效一次,后续就不会生效了,如果还想监听路径变化,需要再次跑命令监听
Zookeeper客户端常用命令
https://www.powercheng.fun/articles/45393fb1/