如何使用客户端对ZooKeeper进行操作。
2017-11-30 14:46
357 查看
进入ZooKeeper的bin目录之后,直接执行如下命令:
$ sh zkCli.sh
当看到如下输出信息时,表示已经成功连接上本地的ZooKeeper服务器了:
注意,上面的命令没有显示地指定ZooKeeper服务器地址,那么默认是连接本地的ZooKeeper服务器。如果希望连接指定的ZooKeeper服务器,可以通过如下实现:
$ sh zkCli.sh -server ip:port
create [-s] [-e] path data acl
其中,-s或-e分别指定节点特性:顺序或临时节点。默认情况下,即不添加-s或-e参数的,创建的是持久节点。
执行如下命令:
[zk : localhost:2181(CONNECTED) 0] create /zk-book 123
执行完上面的命令,就在ZooKeeper的根节点创建了一个叫做/zk-book的节点,并且节点的数据内容是“123”.另外,create命令的最后一个参数是acl,他是用来进行权限控制的,缺省情况下,不做任何权限控制。
ls path [watch]
其中,path 表示的是指定数据节点的节点路径。
执行如下命令:
[zk : localhost:2181(CONNECTED) 0] ls /
第一次部署的ZooKeeper集群,默认在根节点“/”下面有一个叫做/zookeeper的保留节点。
get path [watch]
执行如下命令:
[zk :localhost:2181(CONNECTED) 0] get /zk-book
从上面的输出信息中,我们可以看到,第一行是节点/zk-book的数据内容,其他几行则是创建该节点的事务ID(cZxid)、最后一次更新该节点的事务ID(mZxid)和最后一次更新该节点的时间(mtime)等属性信息。
set path data [version]
其中,data就是要更新的新内容。注意,set命令后面还有一个version参数,在ZooKeeper中,节点的数据是有版本概念的,这个参数用于指定本次更新操作是基于ZNode的哪一个数据版本进行的。
执行如下命令:
[zk: localhost:2181(CONNECTED) 3] set /zk-book 456
执行完以上命令后,节点/zk-book的数据内容就已经被更新成“456”了。在输出信息中,dataVersion的值由原来的0变成了1,这是因为刚才的更新操作导致该节点的数据版本也发生了变更。
delete path [version]
此命令中的version参数和set命令中的version参数的作用是一致的。
执行如下命令:
[zk: localhost:2181(CONNECTED) 2] delete /zk-book
执行完以上命令后,就可以把/zk-book这个节点成功删除了。但是这里要注意的一点是,要想删除某一个指定节点,该节点必须没有子节点存在。这可以通过执行如下命令来进行验证:
上面的这个输出结果已经很清晰的表明了删除失败,通过Node not empty 这个出错信息,可以看出无法删除一个包含子节点的节点。
$ sh zkCli.sh
当看到如下输出信息时,表示已经成功连接上本地的ZooKeeper服务器了:
注意,上面的命令没有显示地指定ZooKeeper服务器地址,那么默认是连接本地的ZooKeeper服务器。如果希望连接指定的ZooKeeper服务器,可以通过如下实现:
$ sh zkCli.sh -server ip:port
创建
使用create命令,可以创建一个ZooKeeper节点。用法如下:create [-s] [-e] path data acl
其中,-s或-e分别指定节点特性:顺序或临时节点。默认情况下,即不添加-s或-e参数的,创建的是持久节点。
执行如下命令:
[zk : localhost:2181(CONNECTED) 0] create /zk-book 123
执行完上面的命令,就在ZooKeeper的根节点创建了一个叫做/zk-book的节点,并且节点的数据内容是“123”.另外,create命令的最后一个参数是acl,他是用来进行权限控制的,缺省情况下,不做任何权限控制。
读取
与读取相关的命令包括ls命令和set命令。ls
使用ls命令,可以列出ZooKeeper指定节点下的所有子节点。当然,这个命令只能看到指定节点下第一级的所有子节点。用法如下:ls path [watch]
其中,path 表示的是指定数据节点的节点路径。
执行如下命令:
[zk : localhost:2181(CONNECTED) 0] ls /
第一次部署的ZooKeeper集群,默认在根节点“/”下面有一个叫做/zookeeper的保留节点。
get
使用get命令,可以获取ZooKeeper指定节点的数据内容和属性信息。用法如下:get path [watch]
执行如下命令:
[zk :localhost:2181(CONNECTED) 0] get /zk-book
从上面的输出信息中,我们可以看到,第一行是节点/zk-book的数据内容,其他几行则是创建该节点的事务ID(cZxid)、最后一次更新该节点的事务ID(mZxid)和最后一次更新该节点的时间(mtime)等属性信息。
更新
使用set命令,可以更新指定节点的数据内容。用法如下:set path data [version]
其中,data就是要更新的新内容。注意,set命令后面还有一个version参数,在ZooKeeper中,节点的数据是有版本概念的,这个参数用于指定本次更新操作是基于ZNode的哪一个数据版本进行的。
执行如下命令:
[zk: localhost:2181(CONNECTED) 3] set /zk-book 456
执行完以上命令后,节点/zk-book的数据内容就已经被更新成“456”了。在输出信息中,dataVersion的值由原来的0变成了1,这是因为刚才的更新操作导致该节点的数据版本也发生了变更。
删除
使用delete命令,可以删除ZooKeeper上的指定节点。用法如下:delete path [version]
此命令中的version参数和set命令中的version参数的作用是一致的。
执行如下命令:
[zk: localhost:2181(CONNECTED) 2] delete /zk-book
执行完以上命令后,就可以把/zk-book这个节点成功删除了。但是这里要注意的一点是,要想删除某一个指定节点,该节点必须没有子节点存在。这可以通过执行如下命令来进行验证:
上面的这个输出结果已经很清晰的表明了删除失败,通过Node not empty 这个出错信息,可以看出无法删除一个包含子节点的节点。
相关文章推荐
- Zookeeper系列三:Zookeeper客户端的使用(Zookeeper原生API如何进行调用、ZKClient、Curator)
- 如何使用ASP进行打印操作
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- 如何使用ASP进行打印操作
- 如何使用iJunOS进行Juniper/Cisco互操作练习
- 如何使用ANT自动进行数据库的相关操作
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- Dojo 1.6 最新官方教程: 如何使用dojo.query 进行DOM查询和批量操作
- 使用SharePoint 2010 客户端对象模型进行文档库及文档的操作
- 如何使用ASP.NET对ACCESS数据库进行增删改查操作(基本型)
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- 如何使用ANT自动进行数据库的相关操作
- 如何使用dojo.query 进行DOM查询和批量操作
- Dojo 1.6 最新官方教程: 如何使用dojo.query 进行DOM查询和批量操作
- 使用js脚本如何进行客户端验证时出现乱码怎么办?
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- 如何使用VNCserver使客户端可以登陆远程操作,及其配置.
- asp.net TreeView安装、使用(如何将TreeView打包发布)(带CheckBox选择框的TreeView的初始化,TreeView客户端操作:选择父节点后自动选择所有子节点,子节点选择后自动选择父节点)(TreeView节点精确定位)
- 如何正确使用并行计算对集合进行写操作?
- 如何使用Log4j进行日志操作(例程及配置介绍)