简介:本篇博客主要是对Zookeeper的操作,包含了:查看当前节点详细数据、创建普通节点和临时节点、获取节点的值、创建带序号节点、修改节点的数据值、节点值变化监听、节点的子节点变化监听(路径变化)、删除节点等。
目录
- 1、启动客户端
- 2、显示所有操作命令
- 3、查看当前znode所包含的内容
- 4、查看当前节点详细数据
- 5、创建普通节点
- 6、获取节点的值(详细信息)
- 7、创建临时节点
- 8、创建待序号的节点
- 9、修改节点的数据值
- 10、节点的值变化监听
- 11、节点的子节点变化监听(路径变化)
- 12、删除节点
- 13、查看节点状态
[lqs@bdc112 zookeeper-3.5.7]$ bin/zkCli.sh2、显示所有操作命令
[zk: localhost:2181(CONNECTED) 0] 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] [-R] path acl setquota -n|-b val path stat [-w] path sync path Command not found: Command not found help3、查看当前znode所包含的内容
[zk: localhost:2181(CONNECTED) 1] ls / [rmstore, yarn-leader-election, zookeeper]4、查看当前节点详细数据
[zk: localhost:2181(CONNECTED) 2] ls -s / [rmstore, yarn-leader-election, zookeeper]cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = 0x0 mtime = Thu Jan 01 08:00:00 CST 1970 pZxid = 0x300000011 cversion = 1 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 35、创建普通节点
[zk: localhost:2181(CONNECTED) 3] create /test "11" Created /test [zk: localhost:2181(CONNECTED) 5] create /test2 "22" Created /test26、获取节点的值(详细信息)
[zk: localhost:2181(CONNECTED) 6] get /test 11 [zk: localhost:2181(CONNECTED) 7] get -s /test 11 cZxid = 0x40000000c ctime = Sat Dec 18 15:09:22 CST 2021 mZxid = 0x40000000c mtime = Sat Dec 18 15:09:22 CST 2021 pZxid = 0x40000000c cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 2 numChildren = 07、创建临时节点
[zk: localhost:2181(CONNECTED) 24] create -e /test/testl Created /test/testl #当前临时节点还是存在的 [zk: localhost:2181(CONNECTED) 25] ls /test test test2 testl [zk: localhost:2181(CONNECTED) 25] quit #退出客户端再进来,该临时节点就没有 [zk: localhost:2181(CONNECTED) 0] ls /test []8、创建待序号的节点
#先创建一个节点 [zk: localhost:2181(CONNECTED) 2] ls /test [] [zk: localhost:2181(CONNECTED) 3] create /test/test Created /test/test #当我们已经创建后,再来创建就不可以了 [zk: localhost:2181(CONNECTED) 4] create /test/test Node already exists: /test/test #党史可以创建带序号的节点,且序号的节点编号是自动递增的 [zk: localhost:2181(CONNECTED) 5] create -s /test/test Created /test/test0000000005 [zk: localhost:2181(CONNECTED) 8] ls /test [test, test0000000005] [zk: localhost:2181(CONNECTED) 9] create -s /test/test Created /test/test0000000006 [zk: localhost:2181(CONNECTED) 10] ls /test [test, test0000000005, test0000000006] [zk: localhost:2181(CONNECTED) 11] create -s /test/test Created /test/test0000000007 [zk: localhost:2181(CONNECTED) 12] ls /test [test, test0000000005, test0000000006, test0000000007]9、修改节点的数据值
#创建节点zhi,并且初始化zhi的值为"123456" [zk: localhost:2181(CONNECTED) 15] create /test/zhi "123456" Created /test/zhi #查看值(获取值) [zk: localhost:2181(CONNECTED) 16] get /test/zhi 123456 #修改zhi的值为"654321" [zk: localhost:2181(CONNECTED) 17] set /test/zhi "654321" #查看修改后的值 [zk: localhost:2181(CONNECTED) 18] get /test/zhi 65432110、节点的值变化监听
#在bdc112主机上注册监听/sanguo节点数据变化 [zk: localhost:2181(CONNECTED) 21] get -w /test #在bdc113主机上修改/sanguo节点的数据 [zk: localhost:2181(CONNECTED) 0] set /test "12" #观察bdc112主机收到数据变化的监听 [zk: localhost:2181(CONNECTED) 22] WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/test #注意,当再次去bdc113修改值是,此bdc112的监听不会有值在出现,因为这里监听只监听一次!11、节点的子节点变化监听(路径变化)
#在bdc112主机上注册监听/sanguo节点的子节点变化 [zk: localhost:2181(CONNECTED) 22] ls -w /test [test, test0000000005, test0000000006, test0000000007, zhi] #在bdc113主机/sanguo节点上创建子节点 [zk: localhost:2181(CONNECTED) 0] create /test/jinting "test" Created /test/jinting #观察bdc112主机收到子节点变化的监听 [zk: localhost:2181(CONNECTED) 23] WATCHER:: WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test12、删除节点
delete删除子节点
[zk: localhost:2181(CONNECTED) 24] ls /test [jinting, test, test0000000005, test0000000006, test0000000007, zhi] [zk: localhost:2181(CONNECTED) 25] delete /test/test0000000007 [zk: localhost:2181(CONNECTED) 26] ls /test [jinting, test, test0000000005, test0000000006, zhi]
delete递归删除父节点
[zk: localhost:2181(CONNECTED) 30] ls / [rmstore, test2, test, yarn-leader-election, zookeeper] [zk: localhost:2181(CONNECTED) 27] delete /test Node not empty: /test [zk: localhost:2181(CONNECTED) 28] deleteall /test [zk: localhost:2181(CONNECTED) 30] ls / [rmstore, test2, yarn-leader-election, zookeeper]
还可以用rmr命令删除节点或父节点
但是它会说“The command ‘rmr’ has been deprecated. Please use ‘deleteall’ instead.”,即“命令’rmr’已被弃用。 请使用“deleteall”代替。 ”
[zk: localhost:2181(CONNECTED) 30] ls / [rmstore, test2, yarn-leader-election, zookeeper] [zk: localhost:2181(CONNECTED) 31] ls /test2 [] [zk: localhost:2181(CONNECTED) 32] create /test2/test Created /test2/test [zk: localhost:2181(CONNECTED) 33] ls /test2 [test] [zk: localhost:2181(CONNECTED) 34] rmr /test2 The command 'rmr' has been deprecated. Please use 'deleteall' instead. [zk: localhost:2181(CONNECTED) 35] ls / [rmstore, yarn-leader-election, zookeeper] [zk: localhost:2181(CONNECTED) 36]13、查看节点状态
[zk: localhost:2181(CONNECTED) 36] stat /rmstore cZxid = 0x300000011 ctime = Fri Dec 17 23:45:48 CST 2021 mZxid = 0x300000011 mtime = Fri Dec 17 23:45:48 CST 2021 pZxid = 0x300000012 cversion = 1 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 1



