“ZooKeeper 常用命令”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
第153行: 第153行:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
=== 删除节点数据 ===
 +
delete znode名称  # 删除没有子节点的 Znode
  
 +
旧版本:deleteall znode名称  # 删除指定节点和它全部的子节点
  
 +
新版本:rmr znode名称  # 删除指定节点和它全部的子节点<syntaxhighlight lang="shell-session">
 +
[zk: localhost:2181(CONNECTED) 5] create /qf/yyy abc
 +
Created /qf/yyy
 +
[zk: localhost:2181(CONNECTED) 7] ls /qf
 +
[yyy]
 +
[zk: localhost:2181(CONNECTED) 8] delete /qf
 +
Node not empty: /qf
 +
[zk: localhost:2181(CONNECTED) 9] ls /
 +
[qf0000000001, qf0000000002, zookeeper, qf]
 +
[zk: localhost:2181(CONNECTED) 10] delete /qf0000000001
 +
[zk: localhost:2181(CONNECTED) 11] ls /
 +
[qf0000000002, zookeeper, qf]
 +
[zk: localhost:2181(CONNECTED) 12] deleteall /qf
 +
ZooKeeper -server host:port cmd args
 +
connect host:port
 +
get path [watch]
 +
ls path [watch]
 +
set path data [version]
 +
rmr path
 +
delquota [-n|-b] path
 +
quit
 +
printwatches on|off
 +
create [-s] [-e] path data acl
 +
stat path [watch]
 +
close
 +
ls2 path [watch]
 +
history
 +
listquota path
 +
setAcl path acl
 +
getAcl path
 +
sync path
 +
redo cmdno
 +
addauth scheme auth
 +
delete path [version]
 +
setquota -n|-b val path
 +
[zk: localhost:2181(CONNECTED) 13]  rmr /qf
 +
[zk: localhost:2181(CONNECTED) 14] ls /
 +
[qf0000000002, zookeeper]
 +
[zk: localhost:2181(CONNECTED) 15]
  
 +
</syntaxhighlight>对包含子节点的节点执行 delete 操作,会提示 "Node not empty"
  
 
=== 退出 ZooKeeper ===
 
=== 退出 ZooKeeper ===

2022年8月16日 (二) 08:03的最新版本

启动命令行客户端连接 ZooKeeper 实例

未指定 host:port 默认连接本地 ZooKeeper 服务

root@ca09cd8f59b4:/opt/zookeeper/bin# ./zkCli.sh
Connecting to localhost:2181
......
[zk: localhost:2181(CONNECTED) 0]


指定 host:port 连接指定 ZooKeeper 服务

root@ca09cd8f59b4:/opt/zookeeper/bin# ./zkCli.sh 192.168.137.201:2121
Connecting to 192.168.137.201:2181
......
[zk: 192.168.137.201:2181(CONNECTED) 0]


查询

查询当前节点下的全部子节点

ls 节点名称

[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 1]


查询当前节点下的数据

[zk: localhost:2181(CONNECTED) 4] get /zookeeper

cZxid = 0x0
ctime = Thu Jan 01 00:00:00 UTC 1970
mZxid = 0x0
mtime = Thu Jan 01 00:00:00 UTC 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1
[zk: localhost:2181(CONNECTED) 5]

查询结果第一行是数据

ctime (create time)是创建时间

mtime(modify time)是修改时间

创建节点

create [-s] [-e] Znode名称 Znode数据

-s:sequence,有序节点

-e:ephemeral,临时节点

创建普通节点

[zk: localhost:2181(CONNECTED) 5] create /qf xxx
Created /qf
[zk: localhost:2181(CONNECTED) 6] ls /
[qf, zookeeper]
[zk: localhost:2181(CONNECTED) 7] get /qf
xxx
cZxid = 0x6
ctime = Tue Aug 16 01:10:18 UTC 2022
mZxid = 0x6
mtime = Tue Aug 16 01:10:18 UTC 2022
pZxid = 0x6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 8]

创建有序节点

[zk: localhost:2181(CONNECTED) 8] create -s /qf yyy
Created /qf0000000001
[zk: localhost:2181(CONNECTED) 9] create -s /qf yyy
Created /qf0000000002
[zk: localhost:2181(CONNECTED) 10]

创建临时节点

[zk: localhost:2181(CONNECTED) 1] create -e /temp uuu
Created /temp
[zk: localhost:2181(CONNECTED) 2] ls /
[qf, temp, qf0000000001, qf0000000002, zookeeper]
[zk: localhost:2181(CONNECTED) 3]

只要当前 ZooKeeper 客户端和 ZooKeeper 服务器断开连接,临时节点就会消失,但持久节点不会


创建临时有序节点

[zk: localhost:2181(CONNECTED) 3] create -s -e /temp uuu
Created /temp0000000005
[zk: localhost:2181(CONNECTED) 4] create -s -e /temp uuu
Created /temp0000000006
[zk: localhost:2181(CONNECTED) 5] create -s -e /temp uuu
Created /temp0000000007
[zk: localhost:2181(CONNECTED) 6] create -s -e /temp uuu
Created /temp0000000008
[zk: localhost:2181(CONNECTED) 7] ls /
[temp0000000006, temp0000000007, temp0000000005, qf0000000001, qf0000000002, temp0000000008, zookeeper, qf, temp]
[zk: localhost:2181(CONNECTED) 8]

退出确认之前创建的临时节点已经消失

[zk: localhost:2181(CONNECTED) 9] quit
Quitting...
2022-08-16 01:27:33,264 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x182a3a9cf540003 closed
2022-08-16 01:27:33,264 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@512] - EventThread shut down
root@ca09cd8f59b4:/opt/zookeeper/bin# ./zkCli.sh
Connecting to localhost:2181
......
Welcome to ZooKeeper!
......
[zk: localhost:2181(CONNECTED) 0] ls /
[qf0000000001, qf0000000002, zookeeper, qf]
[zk: localhost:2181(CONNECTED) 1]

修改节点数据

set znode名称 新数据

[zk: localhost:2181(CONNECTED) 1] get /qf
xxx
......
[zk: localhost:2181(CONNECTED) 2] set /qf yyy
......
[zk: localhost:2181(CONNECTED) 3] get /qf
yyy
......
[zk: localhost:2181(CONNECTED) 4] get /qf
yyy
......
[zk: localhost:2181(CONNECTED) 5]

删除节点数据

delete znode名称 # 删除没有子节点的 Znode

旧版本:deleteall znode名称 # 删除指定节点和它全部的子节点

新版本:rmr znode名称 # 删除指定节点和它全部的子节点

[zk: localhost:2181(CONNECTED) 5] create /qf/yyy abc 
Created /qf/yyy
[zk: localhost:2181(CONNECTED) 7] ls /qf
[yyy]
[zk: localhost:2181(CONNECTED) 8] delete /qf
Node not empty: /qf
[zk: localhost:2181(CONNECTED) 9] ls /
[qf0000000001, qf0000000002, zookeeper, qf]
[zk: localhost:2181(CONNECTED) 10] delete /qf0000000001
[zk: localhost:2181(CONNECTED) 11] ls /
[qf0000000002, zookeeper, qf]
[zk: localhost:2181(CONNECTED) 12] deleteall /qf
ZooKeeper -server host:port cmd args
	connect host:port
	get path [watch]
	ls path [watch]
	set path data [version]
	rmr path
	delquota [-n|-b] path
	quit 
	printwatches on|off
	create [-s] [-e] path data acl
	stat path [watch]
	close 
	ls2 path [watch]
	history 
	listquota path
	setAcl path acl
	getAcl path
	sync path
	redo cmdno
	addauth scheme auth
	delete path [version]
	setquota -n|-b val path
[zk: localhost:2181(CONNECTED) 13]  rmr /qf
[zk: localhost:2181(CONNECTED) 14] ls / 
[qf0000000002, zookeeper]
[zk: localhost:2181(CONNECTED) 15]

对包含子节点的节点执行 delete 操作,会提示 "Node not empty"

退出 ZooKeeper

[zk: localhost:2181(CONNECTED) 9] quit
Quitting...
2022-08-16 01:27:33,264 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x182a3a9cf540003 closed
2022-08-16 01:27:33,264 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@512] - EventThread shut down
root@ca09cd8f59b4:/opt/zookeeper/bin#