命令行参数:
参数 | 功能描述 |
---|---|
help | 显示所有操作命令 |
ls path [watch] | 查看当前 znode 中所包含的内容 |
ls2 path [watch] | 查看当前节点数据并能看到更新次数等数据 |
create | 普通创建 -s 含有序列 -e 临时(重启或者超时消失) |
get path [watch] | 获得当前节点的值 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
rmr | 递归删除节点 |
-
help
[zk: localhost:2181(CONNECTED) 0] help 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
-
ls
[zk: localhost:2181(CONNECTED) 1] ls / [isr_change_notification, hbase, admin, zookeeper, consumers, config, storm, spark, brokers, controller_epoch]
-
ls2
[zk: localhost:2181(CONNECTED) 2] ls2 / [isr_change_notification, hbase, admin, zookeeper, consumers, config, storm, spark, brokers, controller_epoch] cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = 0x0 mtime = Thu Jan 01 08:00:00 CST 1970 pZxid = 0x5900000004 cversion = 56 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 10
-
创建普通节点
[zk: localhost:2181(CONNECTED) 4] create /test "today" Created /test [zk: localhost:2181(CONNECTED) 5] create /test/subtest "today" Created /test/subtest
-
获得节点的值
[zk: localhost:2181(CONNECTED) 6] get /test "today" cZxid = 0xa600000002 ctime = Sun Jul 07 18:58:21 CST 2019 mZxid = 0xa600000002 mtime = Sun Jul 07 18:58:21 CST 2019 pZxid = 0xa600000003 cversion = 1 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 7 numChildren = 1 [zk: localhost:2181(CONNECTED) 7] get /test/subtest "today" cZxid = 0xa600000003 ctime = Sun Jul 07 18:58:50 CST 2019 mZxid = 0xa600000003 mtime = Sun Jul 07 18:58:50 CST 2019 pZxid = 0xa600000003 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 7 numChildren = 0
-
创建短暂节点
退出当前客户端,该临时节点会被删除。
# 创建短暂节点 [zk: localhost:2181(CONNECTED) 1] create -e /test/shorttest "short" Created /test/shorttest # 在当前客户端是能查看到的 [zk: localhost:2181(CONNECTED) 2] ls /test [shorttest, subtest] # 闭退出当前客户端 [zk: localhost:2181(CONNECTED) 3] quit Quitting... 2019-07-07 19:05:03,872 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@509] - EventThread shut down 2019-07-07 19:05:03,874 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x16bcc12129e0002 closed #重启客户端 [root@hadoop01 zookeeper]# bin/zkCli.sh # 再次查看根目录下短暂节点已经删除 [zk: localhost:2181(CONNECTED) 0] ls /test [subtest]
-
创建带序号的节点
如果原来节点下没有节点,序号从0开始依次递增。如果原节点下已有2个节点,则再排序时从2开始,以此类推。
[zk: localhost:2181(CONNECTED) 2] create /test/order "order" Created /test/order [zk: localhost:2181(CONNECTED) 3] create -s /test/order/test1 "test1" Created /test/order/test10000000000 [zk: localhost:2181(CONNECTED) 4] create -s /test/order/test2 "test2" Created /test/order/test20000000001 [zk: localhost:2181(CONNECTED) 5] create -s /test/order/test2 "test3" Created /test/order/test20000000002 [zk: localhost:2181(CONNECTED) 6] create -s /test/order/test3 "test3" Created /test/order/test30000000003 # 此处由于上面在 /test 节点下创建过一个临时节点,故从3开始 [zk: localhost:2181(CONNECTED) 7] create -s /test/order1 "ordertest" Created /test/order10000000003 [zk: localhost:2181(CONNECTED) 8] ls /test [order10000000003, order, subtest]
-
修改节点数据值
# 修改前,值为 "order" [zk: localhost:2181(CONNECTED) 17] get /test/order "order" cZxid = 0xa60000000b ctime = Sun Jul 07 19:12:12 CST 2019 mZxid = 0xa60000000b mtime = Sun Jul 07 19:12:12 CST 2019 pZxid = 0xa60000000f cversion = 4 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 7 numChildren = 4 # 将值修改为 "123" [zk: localhost:2181(CONNECTED) 18] set /test/order "123" cZxid = 0xa60000000b ctime = Sun Jul 07 19:12:12 CST 2019 mZxid = 0xa600000016 mtime = Sun Jul 07 19:21:10 CST 2019 pZxid = 0xa60000000f cversion = 4 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 4 # 修改后,值为 "123" [zk: localhost:2181(CONNECTED) 19] get /test/order "123" cZxid = 0xa60000000b ctime = Sun Jul 07 19:12:12 CST 2019 mZxid = 0xa600000016 mtime = Sun Jul 07 19:21:10 CST 2019 pZxid = 0xa60000000f cversion = 4 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 4
-
监听节点的值变化
-
在节点hadoop01上注册监听 /test/order 节点数据变化
[zk: localhost:2181(CONNECTED) 20] get /test/order watch "123" cZxid = 0xa60000000b ctime = Sun Jul 07 19:12:12 CST 2019 mZxid = 0xa600000016 mtime = Sun Jul 07 19:21:10 CST 2019 pZxid = 0xa60000000f cversion = 4 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 4
-
在hadoop02主机上修改/test/order节点的数据"
[zk: localhost:2181(CONNECTED) 1] set /test/order "order-hadoop02" cZxid = 0xa60000000b ctime = Sun Jul 07 19:12:12 CST 2019 mZxid = 0xa600000018 mtime = Sun Jul 07 19:24:57 CST 2019 pZxid = 0xa60000000f cversion = 4 dataVersion = 2 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 16 numChildren = 4
-
观察hadoop01主机收到数据变化的监听
[zk: localhost:2181(CONNECTED) 21] WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/test/order
-
-
节点的子节点变化监听(路径变化)
-
在hadoop01主机上注册监听/test节点的子节点变化
[zk: localhost:2181(CONNECTED) 2] ls /test watch [order1, order10000000003, order20000000005, order, subtest]
-
在hadoop02主机/test节点上创建子节点
[zk: localhost:2181(CONNECTED) 0] create /test/watchtest "watchtest" Created /test/watchtest
-
观察hadoop01主机收到子节点变化的监听
[zk: localhost:2181(CONNECTED) 2] WATCHER:: WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test
-
-
删除节点
# 查看节点 [zk: localhost:2181(CONNECTED) 2] ls /test [order1, order10000000003, order20000000005, order, watchtest, subtest] # 删除/test/order1,但是该节点下面还有节点 [zk: localhost:2181(CONNECTED) 3] delete /test/order1 Node not empty: /test/order1 # 查看 /test 节点,order1 仍然存在 [zk: localhost:2181(CONNECTED) 4] ls /test [order1, order10000000003, order20000000005, order, watchtest, subtest] [zk: localhost:2181(CONNECTED) 5] ls /test/subtest [] # 删除/test/subtest,该节点下面没有其他节点 [zk: localhost:2181(CONNECTED) 6] delete /test/subtest # 删除成功 [zk: localhost:2181(CONNECTED) 8] ls /test [order1, order10000000003, order20000000005, order, watchtest]
-
递归删除节点
# 递归删除 /test/order1 节点 [zk: localhost:2181(CONNECTED) 9] rmr /test/order1 # 删除成功 [zk: localhost:2181(CONNECTED) 10] ls /test [order10000000003, order20000000005, order, watchtest]
-
查看节点状态
[zk: localhost:2181(CONNECTED) 11] stat /test cZxid = 0xa600000002 ctime = Sun Jul 07 18:58:21 CST 2019 mZxid = 0xa600000002 mtime = Sun Jul 07 18:58:21 CST 2019 pZxid = 0xa600000023 cversion = 10 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 7 numChildren = 4