Zk笔记(二):客户端脚本

来源:互联网 发布:usb3.0端口电压 编辑:程序博客网 时间:2024/06/18 10:06

        前面已经搭建起一个能够正常运行的Zk集群了,接下来,可以使用客户端对Zk进行操作,下面重点要看下zkCli这个脚本来使用一些命名行工具。
        进入Zookeeper的bin目录后,直接执行执行:

zkCli.cmd

这里用的是window,如果是linux的话就执行zkCli.sh

如要希望连接指定的Zk服务器,可以通过如下方式实现:

zkCli.cmd -server ip:port


        当看到如下信息时,表示已经成功连接上本地的Zk服务器了:


1.create 创建

  使用create命令,可以创建一个Zk节点。用法如下:

create [-s] [-e] path data acl
其中,-s表示顺序节点-e表示临时节点。默认情况下,即不添加-s或-e参数的,创建的是持久节点

例如:


执行完上面的命令,就在Zk的根节点下创建了一个叫/zk-company的节点,并且节点的数据内容是"juxinli2016"。另外,create命令的最后一个参数是acl,它用来进行权限控制,缺省情况下,不做任何权限控制。


2.ls、get 读取

  2.1 ls

    使用ls命令,可以列出Zk指定节点下的所有子节点。当然,这个命令只能看到指定节点下第一级的所有子节点,用法如下:

ls path [watch]
其中,path表示的是指定数据节点的节点路劲

例如:


如上,zk-company节点是上面create命令创建的,zookeeper节点是第一次部署Zk集群时默认在根节点"/"下的保留节点。


  2.2 get

    使用get命令,可以获取Zk指定节点的数据内容和属性信息,用法如下:

get path [watch]
例如:


如上,第一行是节点/zk-company的数据内容,其他几行则是创建节点的事物ID(cZxid),最后一次更新该节点的事物ID(mZxid)和最后一次更新该节点的时间(mtime)等属性信息。


  3.set 更新

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

set path data [version]
其中,data就是要更新的新内容。注意,set命名后面还有一个version参数,在Zk中,节点的数据是有版本概念的。这个参数用于指定本次更新操作是基于ZNode的哪一个数据版本进行的

例如:


如上,节点/zk-company的数据内容被更新为"juxinli2016+"了。在输出的信息中,dataVersion的值由原来的0变成1,这是因为刚才的更新操作导致该节点的数据版本也发生了变更。


  4.delete 删除

    使用detelte,可以删除Zk上的指定节点。用法如下:

delete path [version]
此命名中的version参数和set命名中的version参数的作用是一致的。

例如:

如上,执行玩以上命名后,就可以把/zk-company这个节点成功删除了。但需要注意的是,要想删除某一个指定节点,该节点必须没有子节点存在。验证如下:


如上,当包含子节点时,删除失败,即delete命令无法删除一个包含子节点的节点


参考:

《从Paxos到Zookeeper》



1 0