ZooKeeper命令行操作

#md#
现在已经搭建起了一个能够正常运行的zookeeper服务了,所以接下来,就是来借助客户端来对
zookeeper的数据节点进行操作
首先,进入到zookeeper的bin目录之后
通过zkClient进入zookeeper客户端命令行

./zkcli.sh连接本地的zookeeper服务器
./zkCli.sh-server ip:port连接指定的服务器

连接成功之后,系统会输出Zookeeper的相关环境及配置信息等信息。输入help之后,屏幕会输出可用
的Zookeeper命令,如

ZooKeeper-server host:port cmd args
  stat path [watch]
  set path data [version]
  Is path [watch]
  delquota [-n|-b] path
  1s2 path [watch]
  setAcl path acl
  setquota-n|-b val path
  history
  redo cmdno
  printwatches on loff
  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
创建节点

使用create命令,可以创建一个Zookeeper节点,如

create [-s][-e] path data acl
其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定,则创建持久节点;ac1用来进行权限控制
①创建顺序节点

使用create-s/zk-test123命令创建zk-test顺序节点

[zk: localhost: 2181(CONNECTED) 0] create -s /zk-test 123
Created/test0000000004

执行完后,就在根节点下创建了一个叫做/zk-test的节点,该节点内容就是123,同时可以看到创建的
zk-test节点后面添加了一串数字以示区别

②创建临时节点

使用create-e/zk-temp123命令创建zk-temp临时节

[zk: localhost: 2181(CONNECTED) 1] create -e /zk-temp 123
Created/zk-temp

临时节点在客户端会话结束后,就会自动删除,下面使用quit命令退出客户端

[zk: localhost:2181(CONNECTED)2]quit
Quittin
2020-03-07 18:09:33,829 [myid:]-INF0 [main:ZooKeeper@693]-Session
0x10003325ffa0002 closed
2020-03-07 18:09:33,832 [myid:]-INF0 [main-EventThread:ClientCnxn$日
entThread@522]-EventThread shut down for session:0x10003325ffa0002

再次使用客户端连接服务端,并使用ls/命令查看根目录下的节点

[zk: localhost:2181(CONNECTED) 0] ls
[zookeeper,zk-test0000000004]

可以看到根目录下已经不存在zk-temp临时节点了

③创建永久节点

使用create/zk-permanent123命令创建zk-permanent永久节点

[zk: loca lhost:2181(CONNECTED) 1] create /zk-permanent 123
Created/zk-permanent
: Loca lhost:2181(CONNECTED)2] 1s/
[zk-permanent, zookeeper, zk-test0000000004]

可以看到永久节点不同于顺序节点,不会自动在后面添加一串数字

读取节点

与读取相关的命令有ls命令和get命令
ls命令可以列出Zookeeper指定节点下的所有子节点,但只能查看指定节点下的第一级的所有子节点;

ls path
#其中,path表示的是指定数据节点的节点路径

get命令可以获取Zookeeper指定节点的数据内容和属性信息。

get path

若获取根节点下面的所有子节点,使用ls/命令即可

zk: localhost:2181(CONNECTED)2] 1s/
zk-permanent,zookeeper,zk-test00000000041

若想获取/zk-permanent的数据内容和属性,可使用如下命令:get/zk-permanent

[zk: Localhost:2181(CONNECTED)4]get/zk-permanent
123
cZxid=0x7
ctime = Sat Mar 07 18:00:21 CST 2020
mZxid=0x7
mtime = Sat Mar 07 18:00:21 CST 2020
pZxid=0x7
cversion=0
dataVersion=0
aclVersion=0
ephemeralowner=0x0
dataLength=3
numChildren=0

从上面的输出信息中,我们可以看到,第一行是节点/zk-permanent的数据内容,其他几行则是创建该
节点的事务ID(cZxid)、最后一次更新该节点的事务ID(mZxid)和最后一次更新该节点的时间
(mtime)等属性信息

更新节点

使用set命令,可以更新指定节点的数据内容,用法如下

set path data [version]

其中,data就是要更新的新内容,version表示数据版本,在zookeeper中,节点的数据是有版本概
念的,这个参数用于指定本次更新操作是基于Znode的哪一个数据版本进行的,如将/zk-permanent节
点的数据更新为456,可以使用如下命令:set/zk-permanent456

[zk: localhost:2181(CONNECTED)3] set /zk-permanent 456
cZxid=0x12
ctime=Sat Mar 07 18:11:14 CST 2020
mZxid=0x13
mtime=Sat Mar 07 18:13:48 CST 2020
pZxid=0x12
cversion=0
dataVersion=1
aclVersion=0
ephemeralowner=0x0
dataLength=3
numChildren=0
现在dataVersion已经变为1了,表示进行了更新
删除节点

使用delete命令可以删除Zookeeper上的指定节点,用法如下

delete path [version]

其中version也是表示数据版本,使用delete/zk-permanent命令即可删除/zk-permanent节点

[zk: Localhost:2181(CONNECTED)4] delete/zk-permanent
zk: localhost:2181(CONNECTED)5] ls/
[zookeeper,zk-test0000000004]

可以看到,已经成功删除/zk-permanent节点。值得注意的是,若删除节点存在子节点,那么无法删除
该节点,必须先删除子节点,再删除父节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值