zookeeper_cli 客户端命令实战操作详解
《 zookeeper_cli 客户端命令实操 》
《 Zookeeper 分布式应用程序协调服务 》搭建完成后,就可以进行客户端命令实战实操了。
要对 zookeeper 进行操作,首先要确保 ZooKeeper 服务器已经开启,如果没有开启,输入命令 “ ./zkServer.sh start ” ;
然后打开 zookeeper 客户端,输入命令 “ ./zkCli.sh ” 或者指定的开启某个 zookeeper 输入命令 “ ./zkCli.sh -server 192.168.78.141:2181 ”,如下图:
2、创建节点
在这儿使用给定的路径创建一个节点(znode)。其中 flag 参数指定创建的节点(znode)是临时的,持久的还是顺序的。
永久节点(znode)(flag:不填):在默认情况下,所有节点(znode)都是永久的;
临时节点(znode)(flag:-e):当会话过期或客户端断开连接时将被自动删除;
持久节点(znode)(flag:-s):顺序节点将保证节点(znode)路径将是唯一的;
1)、创建永久节点
语法:create /path data
输入命令 “ create /zk/node/001 huazai ” ,如果不出错,则创建成功,如下图:
2)、创建顺序节点
语法:create -s /path data
创建两个节点,使顺序创建节点更清晰,输入命令 “ create -s /zk/node/zknode zhangsan ”,“ create -s /zk/node/zknode lisi ” ,如果不出错,则创建成功,如下图:
注意:ZooKeeper 集合将向节点(znode)路径填充 10 位***。
例如,节点(znode)路径 /zk/node/zknode 将转换为 /zk/node/zknode0000000005,下一个***将为 /zk/node/zknode0000000006。
3)、临时节点
语法:create -e /path data
输入命令 “ create -e /zk/node/001 huazai ” ,如果不出错,则创建成功,如下图:
注意:当客户端断开连接时,临时节点将被删除。
3、获取节点内容
它返回节点(znode)的关联数据和指定znode的元数据。
语法:get /path
获取永久节点 002 的内容,输入命令 “ get /zk/node/002 ” ,如果该节点存在,则返回元数据,如下图:
注意:在新版本中需要获取上次修改数据的时间、修改的位置、数据的相关信息等,需要加入(flag:-s),如果 zookeeper 是旧版本,则直接输入 “ get /zk/node/002 ” ,如下图:
4、设置节点内容
设置指定节点(znode)的数据,该节点元数据将被覆盖。
语法:set /path
获取永久节点 002 的内容,输入命令 “ set /zk/node/002 data ” ,如果该节点存在,则返回元数据,如下图:
5、设置监视
在指定的节点(znode)或节点(znode)的子数据更改时,监视器会显示通知;必须只能在 get 命令中设置监视(watch)。
现在在网上 99.99% 的教程都是错误语法 -> get /path [watch] 1 (其中包括很多有名的官网都是这个语法),但在新的 zookeeper 版本中该写法已经被弃用。
我在这儿纠正一下,设置节点监视的正确语法:get -w /path 如下图:
6、列出所有子节点
列出和显示节点(znode)的子项。
语法:ls /path
获取所有节点(znode),输入命令 “ ls /zk/node ” ,如果有节点存在,则返所有节点,如下图:
7、检查节点状态
检查节点状态描述指定的是节点(znode)的元数据。其中包含了时间戳、版本号、ACL、数据长度及节点(znode)等细项。
语法:stat /path
获取节点(znode)状态,输入命令 “ stat /zk/node/002 ” ,如果改节点存在,则返该节点状态,如下图:
8、删除/移除节点
删除节点是指在指定删除节点时,只删除当前指定的节点。
移除节点是指在移除指定的节点(znode)的同时递归其所有子节点。
语法:
删除节点:delete /path
移除节点:deleteall /path
删除指定节点,输入命令 “ delete /zk/node/002 ” ,移除节点,输入命令 “ rmr /zk ”,如下图:
注意:在旧版本中移除节点使用命令 “ rmr ” ,在新版本中 “ rmr ” 已被弃用,移除所有节点使用命令 “ deleteall ”。
结束语:
以上操作的只为部分常用的命令,在连接到 zookeeper 后,输入命令 “ help ” 可以查看更多命令,如下:
ZooKeeper -server host:port cmd args
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
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]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] path acl
setquota -n|-b val path
stat [-w] path
sync path
其中主要演示了创建节点增、删、改、查的操作;
其它命令就不再这儿演示了,如果有需要,可以到官网去寻找 http://zookeeper.apache.org/doc/current/index.html