0%

zookeeper命令

zookeeper命令

该版本为3.6.1版本,不同版本可能略有不同

zookeeper服务端启动之后,可以在客户端使用命令进行一系列操作

服务器信息

首先开启四字命令,在zoo.cfg中添加配置

1
2
#开启四字命令
4lw.commands.whitelist=*

四字命令可以划分为四类

  • 服务状态相关:ruok、conf、envi、srvr、stat、srst、isro
  • 客户连接相关:dump、cons、crst
  • 节点监听相关:wchs、wchc、wchp
  • 监控相关:mntr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 配置信息
echo conf | nc localhost 2181

# 连接信息
echo cons | nc localhost 2181

# 未处理会话节点
echo dump | nc localhost 2181

# 环境信息
echo envi | nc localhost 2181

# 未处理请求
echo reqs | nc localhost 2181

# 检查通信 回复imok
echo ruok | nc localhost 2181

# 统计信息
echo stat | nc localhost 2181

# 服务器watch的详细信息
echo wchs | nc localhost 2181

# 列出指定路径下的服务器信息
echo wchp | nc localhost 2181

节点操作

创建节点

1
2
3
4
5
6
# -e 临时节点
# -s 有序列号的节点(顺序节点)
#create [-s] [-e] [-c] [-t ttl] path [data] [acl]
# 默认是持久节点
[zk: localhost:2181(CONNECTED) 9] create /zk_test my_data
Created /zk_test

获取节点

1
2
3
4
# 获取当前路径下的节点,路径为绝对路径
#ls [-s] [-w] [-R] path
[zk: localhost:2181(CONNECTED) 10] ls /
[zk_test, zookeeper]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 获取节点信息,要使用绝对路径,从根路径/开始
#get [-s] [-w] path
[zk: localhost:2181(CONNECTED) 11] get /zk_test
my_data

[zk: 127.0.0.1:2181(CONNECTED) 12] get -s /zk_test/zk_test1
dadada
cZxid = 0xb #节点创建时的zxid
ctime = Wed Apr 07 15:05:04 CST 2021 #节点创建时间
mZxid = 0xd #节点最近一次更新时的zxid
mtime = Wed Apr 07 15:06:23 CST 2021 #节点最近一次更新的时间
pZxid = 0xb #最后更新子节点的事务zxid
cversion = 0 #子节点数据更新次数
dataVersion = 1 #本节点数据更新次数
aclVersion = 0 #节点ACL(授权信息)的更新次数
ephemeralOwner = 0x0 #如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
dataLength = 6 #节点数据长度
numChildren = 0 #子节点个数

更新节点

1
2
3
4
5
# 设置节点数据
#set [-s] [-v version] path data
[zk: 127.0.0.1:2181(CONNECTED) 1] set /zk_test junk
[zk: 127.0.0.1:2181(CONNECTED) 2] get /zk_test
junk

删除节点

1
2
3
4
5
# 如果节点中存在子节点则不可删除
# delete [-v version] path
[zk: 127.0.0.1:2181(CONNECTED) 0] delete /zk_test
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /
[zookeeper]
1
2
3
# 删除所有
# deleteall path [-b batch size]
[zk: 127.0.0.1:2181(CONNECTED) 33] deleteall /zk_test

监听节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
[zk: 127.0.0.1:2181(CONNECTED) 19] addwatch /zk_test

或者使用
# get -w path 进行监听节点数据的变化
[zk: 127.0.0.1:2181(CONNECTED) 30] get -w /zk_test

或者使用
# get -w path 进行监听子节点的变化
[zk: 127.0.0.1:2181(CONNECTED) 30] ls -w /zk_test

# 如果数据变化会有监听内容
[zk: 127.0.0.1:2181(CONNECTED) 22] set /zk_test my_data

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/zk_test

权限操作

集群操作

配置操作

1
2
# 连接zk服务端
# connect host:port
1
2
# 与zk服务端断开连接
close
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

addauth scheme auth

config [-c] [-w] [-s]


delquota [-n|-b] path

getAcl [-s] path
getAllChildrenNumber path
getEphemerals path
history
listquota path

printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]

setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path
version

欢迎关注我的其它发布渠道