zookeeper 客服端使用

 

1、登录客户端

[root@vm254200 bin]# ./zkCli.sh -timeout 5000 -server 192.168.254.200:2181
Connecting to 192.168.254.200:2181
2019-09-20 20:23:29,629 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.14-4c25d480e66aadd371de8bd2fd8da255ac140bcf, built on 03/06/2019 16:18 GMT
2019-09-20 20:23:29,633 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=vm254200

命令集

[zk: 192.168.254.200:2181(CONNECTED) 6] h
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history 
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit 
        getAcl path
        close 
        connect host:port

2、列出节点信息  ls path [watch]

[zk: 192.168.254.200:2181(CONNECTED) 1] ls /
[zookeeper]
[zk: 192.168.254.200:2181(CONNECTED) 2] ls /zookeeper
[quota]

3、查询节点状态信息 stat 节点信息  stat path [watch]

[zk: 192.168.254.200:2181(CONNECTED) 5] stat /zookeeper
cZxid = 0x0    #该节点被创建时的事务ID
ctime = Thu Jan 01 08:00:00 CST 1970  #创建时间
mZxid = 0x0    #最后一次更新时的事务ID
mtime = Thu Jan 01 08:00:00 CST 1970  #修改时间
pZxid = 0x0    #子节点列表最后一次修改时的事务ID(创建子节点或删除子节点信息是变更)
cversion = -1  #子节点版本号
dataVersion = 0 #数据版本号
aclVersion = 0  #权限版本号
ephemeralOwner = 0x0   #创建此临时节点的事务ID
dataLength = 0  #当前节点数据的长度
numChildren = 1  #当前节点拥有子节点的个数

4、获取节点数据内容 get path [watch]

 

5、 列出子节点及状态信息 ls2 path [watch]

[zk: 192.168.254.200:2181(CONNECTED) 8] ls2 /zookeeper
[quota]
cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

6、创建节点 create [-s] [-e] path data acl

-s  表示是顺序节点

-e 表示是临时节点,会话结束后就会删除

path 表示是路径

data 表示数据

acl 表示权限

[zk: 192.168.254.200:2181(CONNECTED) 9] create /node_1 123
Created /node_1

[zk: 192.168.254.200:2181(CONNECTED) 10] get /node_1
123
cZxid = 0x200000002
ctime = Fri Sep 20 20:47:57 CST 2019
mZxid = 0x200000002
mtime = Fri Sep 20 20:47:57 CST 2019
pZxid = 0x200000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

[zk: 192.168.254.200:2181(CONNECTED) 11] create /node_1/node_1 234
Created /node_1/node_1

[zk: 192.168.254.200:2181(CONNECTED) 12] create -e /node_1/node_2 2341234
Created /node_1/node_2

7、退出 quit

 

8、修改节点值  set path data [version]

  • path:路径
  • data:数据
  • version:版本 

每次修改 cversion 会递增、dataVersion也会递增

[zk: 192.168.254.200:2181(CONNECTED) 16] set /node_2 999
cZxid = 0x20000000b
ctime = Fri Sep 20 21:02:28 CST 2019
mZxid = 0x20000001b
mtime = Fri Sep 20 21:04:32 CST 2019
pZxid = 0x20000000b
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: 192.168.254.200:2181(CONNECTED) 17] get /node_2
999
cZxid = 0x20000000b
ctime = Fri Sep 20 21:02:28 CST 2019
mZxid = 0x20000001b
mtime = Fri Sep 20 21:04:32 CST 2019
pZxid = 0x20000000b
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

version 必须和查询的dataVersion版本保持一致(等于dataVersion )大于查询的版本会报错

[zk: 192.168.254.200:2181(CONNECTED) 22] set /node_2 999 0
version No is not valid : /node_2
[zk: 192.168.254.200:2181(CONNECTED) 23] set /node_2 999 4
cZxid = 0x20000000b
ctime = Fri Sep 20 21:02:28 CST 2019
mZxid = 0x200000020
mtime = Fri Sep 20 21:11:49 CST 2019
pZxid = 0x20000000b
cversion = 0
dataVersion = 5
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: 192.168.254.200:2181(CONNECTED) 24] 

9、 删除指定路径数据节点 delete path [version]

[zk: 192.168.254.200:2181(CONNECTED) 25] delete /node_1/node_1
[zk: 192.168.254.200:2181(CONNECTED) 26] ls
[zk: 192.168.254.200:2181(CONNECTED) 27] ls /node_1
[]

删除有子节点的节点,循环删除 rmr path

[zk: 192.168.254.200:2181(CONNECTED) 31] rmr /node_1
[zk: 192.168.254.200:2181(CONNECTED) 32] ls /
[node_20000000008, node_20000000007, node_20000000009, zookeeper, node_20000000004, node_20000000015, node_20000000003, node_20000000014, node_20000000006, node_20000000005, node_20000000016, node_20000000011, node_20000000010, node_20000000002, node_20000000013, node_20000000012, node_2]
[zk: 192.168.254.200:2181(CONNECTED) 33]

10、配额相关指令   setquota -n|-b val path

  • -n 限制子节点的个数  val  子节点个数
  • -b 限制子节点的长度  val  子节点长度
[zk: 192.168.254.200:2181(CONNECTED) 36] setquota -n 2 /node_2
Comment: the parts are option -n val 2 path /node_2

[zk: 192.168.254.200:2181(CONNECTED) 37] create /node_2/node_2  123412
Created /node_2/node_2

[zk: 192.168.254.200:2181(CONNECTED) 38] create /node_2/node_3  123412
Created /node_2/node_3

#设置了配额为2,也会创建成功
[zk: 192.168.254.200:2181(CONNECTED) 39] ls /node_2
[node_1, node_2, node_3]

但是会在/usr/local/zookeeper-3.4.14/bin/zookeeper.out 日志文件 抛出警告信息

[root@vm254200 bin]# tail zookeeper.out 
[NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@949] - Client attempting to establish new session at /192.168.254.200:44834
2019-09-20 21:02:15,949 [myid:1] - INFO  [CommitProcessor:1:ZooKeeperServer@694] - Established session 0x10000054ef50003 with negotiated timeout 5000 for client /192.168.254.200:44834
2019-09-20 21:21:54,655 [myid:1] - WARN  [CommitProcessor:1:DataTree@302] - Quota exceeded: /node_2 count=3 limit=2
2019-09-20 21:21:59,460 [myid:1] - WARN  [CommitProcessor:1:DataTree@302] - Quota exceeded: /node_2 count=4 limit=2

查看指定数据节点配额数据情况:listquota path

[zk: 192.168.254.200:2181(CONNECTED) 40] listquota /node_2
absolute path is /zookeeper/quota/node_2/zookeeper_limits
Output quota for /node_2 count=2,bytes=-1  #当前节点的配额信息   -1 是长度没有限制
Output stat for /node_2 count=4,bytes=21   #当前节点的状态信息   21 是自己的数据长度+子节点的数据长度

删除节点配额信息  delquota [-n|-b] path

[zk: 192.168.254.200:2181(CONNECTED) 41] delquota -n /node_2
[zk: 192.168.254.200:2181(CONNECTED) 42] listquota /node_2  
absolute path is /zookeeper/quota/node_2/zookeeper_limits
Output quota for /node_2 count=-1,bytes=-1  #节点个数没有限制
Output stat for /node_2 count=4,bytes=21

11、列出所有指令的历史 history

[zk: 192.168.254.200:2181(CONNECTED) 43] history
33 - ls /
34 - create /node_2/node_1
35 - create /node_2/node_1  123412
36 - setquota -n 2 /node_2
37 - create /node_2/node_2  123412
38 - create /node_2/node_3  123412
39 - ls /node_2
40 - listquota /node_2
41 - delquota -n /node_2
42 - listquota /node_2
43 - history

12、重复执行历史命令中的某一个指令  redo 14

[zk: 192.168.254.200:2181(CONNECTED) 44] redo 34
[zk: 192.168.254.200:2181(CONNECTED) 45] 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值