ZooKeeper学习(三)—使用命令行操纵Zookeeper

Scroll Down

ZooKeeper学习(三)—使用命令行操纵Zookeeper

下面来使用命令行操作一下zookeeper服务器,首先先进入服务器的bin目录

  • 连接zookeeper服务器

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

    image-20200708004144496

  • 使用help命令查看zookeeper命令行的命令提示

    image-20200708004228309

创建节点

create [-s] [-e] path data acl

其中,-s 代表节点的顺序特性,-e 代表节点的临时特性,默认情况下创建的是持久性节点

创建持久性节点

create /test 123

创建一个/test 节点,其中存储的值为123

image-20200708004538542

创建顺序性节点

create -s /test02 234

image-20200708004639493

创建临时性节点

create -e /test03 234

image-20200708004722799

读取节点信息

zookeeper下可以使用ls和get命令来获取节点的信息

ls命令可以列出zookeeper指定节点下的所有一级子节点,使用方式为 ls path

get命令可以获取zookeeper指定节点的数据内容和属性信息,使用方式为 get path

使用ls命令获取节点信息

image-20200708004947980

使用get命令获取节点信息

image-20200708005022499

第一行是节点/test03 的数据内容

  • cZxid:创建该节点的事务ID
  • ctime:创建该节点的时间
  • mZxid:最后一次更新该节点的事务ID
  • mtime:最后节点的时间

更新节点数据

使用set命令更新节点数据

set path data [version]

data就是需要更新的内容,version表示数据版本,在zookeeper中,节点的数据是有版本概念的,所以version可以指定本次更新操作基于ZNode是哪一个数据版本进行的,默认则是更新最新版本

这里执行了命令set /test03 9876

image-20200708005341194

重新get一下这个节点

image-20200708005424951

可以看到这个值变为了9876,并且最后的秀爱时间,dataVersion,dataLength都做了对应的修改

删除节点

删除节点可以使用delete和rmr命令,不同的是rmr命令可以删除带有子节点的节点,delete只能删除节点的最末级

delete path [version]

rmr path

这里我们执行一下delete /test03命令,并且ls一下最新的数据

image-20200708010006377

这里发现我们的节点test03已经被删掉了

创建一个两级节点

create /test04 123
create /test04/test01 123

image-20200708010201991

使用delete命令delete /test04删除节点test04
image-20200708010239840

会提示一个Node not empty的错误,可以先删除test04下的test01节点,再删除test04节点,也可以使用rmr命令直接删除该节点

rmr /test04

image-20200708010331173

这里看到我们直接就将test04节点删掉了,即使是有子节点也被删除了