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 [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 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
|