zookeeper基本操作

1.客户端连接

[tx@test1 bin]$ jps
23433 Jps
23370 QuorumPeerMain    #zookeeper进程[tx@test1 bin]$ ./zkCli.sh -server test1:2182
Connecting to test1:2182
2018-01-24 23:42:09,024 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on [zk: test1:2182(CONNECTED) 0] ls /
[zookeeper]

2.help来查看客户端的操作 

[zk: test1:2182(CONNECTED) 1] help
ZooKeeper -server host:port cmd argsconnect host:portget path [watch]ls path [watch]set path data [version]rmr pathdelquota [-n|-b] pathquit printwatches on|offcreate [-s] [-e] path data aclstat path [watch]close ls2 path [watch]history listquota pathsetAcl path aclgetAcl pathsync pathredo cmdnoaddauth scheme authdelete path [version]setquota -n|-b val path

3.创建节点

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

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

其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定,则表示持久节点;acl用来进行权限控制。

① 创建顺序节点

使用 create -s /zk-test 123 命令创建zk-test顺序节点,节点的内容为123

[zk: test1:2182(CONNECTED) 3] ls /
[zk-test0000000000, zookeeper]

可以看到创建的zk-test节点后面添加了一串数字以示区别。

② 创建临时节点

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

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

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

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

[zk: test1:2182(CONNECTED) 4] create -e /zk-temp 123
Created /zk-temp
[zk: test1:2182(CONNECTED) 5] ls /
[zk-temp, zk-test0000000000, zookeeper]

  [zk: test1:2182(CONNECTED) 0] ls /
  [zk-test0000000000, zookeeper]

③ 创建永久节点

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

[zk: test1:2182(CONNECTED) 1] create /zk-permanent 123
Created /zk-permanent
[zk: test1:2182(CONNECTED) 2] ls /
[zk-test0000000000, zk-permanent, zookeeper]

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

  4. 读取节点

    与读取相关的命令有ls 命令和get 命令,ls命令可以列出Zookeeper指定节点下的所有子节点,只能查看指定节点下的第一级的所有子节点;get命令可以获取Zookeeper指定节点的数据内容和属性信息。其用法分别如下

  ls path [watch]

  get path [watch]

  ls2 path [watch]

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

[zk: test1:2182(CONNECTED) 2] ls /
[zk-test0000000000, zk-permanent, zookeeper]

若想获取根节点数据内容和属性信息,使用get / 命令即可 

[zk: test1:2182(CONNECTED) 3] get /cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x400000008
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 3

也可以使用ls2 / 命令查看

[zk: test1:2182(CONNECTED) 4] ls2 /
[zk-test0000000000, zk-permanent, zookeeper]
cZxid = 0x0
ctime = Wed Dec 31 16:00:00 PST 1969
mZxid = 0x0
mtime = Wed Dec 31 16:00:00 PST 1969
pZxid = 0x400000008
cversion = 3
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 3

可以看到其子节点数量为3

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

[zk: test1:2182(CONNECTED) 5] get /zk-permanent
123
cZxid = 0x400000008
ctime = Tue Jan 30 22:21:47 PST 2018
mZxid = 0x400000008
mtime = Tue Jan 30 22:21:47 PST 2018
pZxid = 0x400000008
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

可以看到其数据内容为123,还有其他的属性,之后会详细介绍。

5. 更新节点

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

set path data [version]

其中,data就是要更新的新内容,version表示数据版本,如将/zk-permanent节点的数据更新为456,可以使用如下命令:set /zk-permanent 456 

[zk: test1:2182(CONNECTED) 6] set /zk-permanent 456
cZxid = 0x400000008
ctime = Tue Jan 30 22:21:47 PST 2018
mZxid = 0x400000009
mtime = Tue Jan 30 22:27:05 PST 2018
pZxid = 0x400000008
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

现在dataVersion已经变为1了,表示进行了更新。

5 删除节点

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

delete path [version]

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

[zk: test1:2182(CONNECTED) 8] delete /zk-permanent 
[zk: test1:2182(CONNECTED) 9] ls /
[zk-test0000000000, zookeeper]

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

 rmr path [version]  

删除有子节点的节点

[zk: test1:2182(CONNECTED) 10] create /zk-permanent 123
Created /zk-permanent
[zk: test1:2182(CONNECTED) 11] create /zk-permanent/test 123
Created /zk-permanent/test
[zk: test1:2182(CONNECTED) 13] delete /zk-permanent         
Node not empty: /zk-permanent
[zk: test1:2182(CONNECTED) 14] rmr /zk-permanent
[zk: test1:2182(CONNECTED) 15] ls /
[zk-test0000000000, zookeeper]

 

转载于:https://www.cnblogs.com/cornerxin/p/8351612.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqllite java 密码,SQLite登录检查用户名和密码

我正在创建一个应用程序(使用Java和SQLite)(JFrame,使用Netbeans)我有我想要登录的用户 . (我有所有正确的包JDBC,SQLite等)我遇到的问题似乎是获取用户名/密码来检查我的users.db文件..我正在使用Java和SQLite . 我也在使用JDBC .我的一些代码作为一个例…

springmvc与struts2的区别

1)springmvc的入口是一个servlet,即前端控制器,例如:*.action struts2入口是一个filter过虑器,即前端过滤器,例如:/* 2)springmvc是基于方法开发,传递参数是通过方法形…

power designer数据流图_鲲云公开课 | 三分钟带你了解数据流架构

目前,市场上的芯片主要包括指令集架构和数据流架构两种实现方式。指令集架构主要包括X86架构、ARM架构、精简指令集运算RISC-V开源架构,以及SIMD架构。总体来说,四者都属于传统的通用指令集架构。传统的指令集架构采用冯诺依曼计算方式&#…

onCreate源码分析

原文地址Android面试题-onCreate源码都没看过,怎好意思说自己做android Activity扮演了一个界面展示的角色,堪称四大组件之首,onCreate是Activity的执行入口,都不知道入口到底干了嘛,还学什么android,所以本文会从源码…

linux php环境搭建教程,linux php环境搭建教程

linux php环境搭建的方法:首先获取相关安装包;然后安装Apache以及mysql;接着修改配置文件“httpd.conf”;最后设置环境变量和开机自启,并编译安装PHP即可。一、获取安装包PHP下载地址:http://cn.php.net/di…

Apache2.2与Tomcat7集成方案详解

原文地址:http://my.oschina.net/u/919173/blog/159206 ------------------------------------ 首先谈一下为什么要集成Apache和tomcat7? Apache是当前使用最为广泛的WWW服务器软件,具有相当强大的静态HTML处理的能力。 Tomcat服务器是一个…

cocos 制作动态生成内容的列表_零代码工具,让你在线轻松制作交互内容!

在工作中设计师不会写代码,懂代码的不会设计,2种不同工作互掐的情况屡见不鲜,那我们如何把这2项工作一并融合贯通呢?对于不懂代码的职场“小白”,我们可以利用一些零代码工具来完成。今天小编介绍几款在线开发设计工具…

php怎样数据缓存文件,php数据缓存到文件类设计

// 自定义缓存类class Cache_Filesystem {// 缓存写保存function set ($key, $data, $ttl) {//打开文件为读/写模式$h fopen($this->get_filename($key), ‘a‘);if (!$h) throw new Exception("Could not write to cache");flock($h, LOCK_EX); //写锁定&#x…

jsp放在web-inf下的注意事项

原文:http://blog.csdn.net/whatlookingfor/article/details/38381881 ------------------------------------------------- web-inf目录是不对外开放的,外部没办法直接访问到。所有只能通过映射来访问,比如映射为一个action或者servlet通过…

php打印布尔型,PHP数据类型之布尔型的介绍_PHP

布尔类型是PHP中 最简单的类型。它的值可以为 TRUE 或 FALSE。如:$foofalse;$foo1true;echo "为假时输出值为:".$foo; //没有输出值echo "为真时输出值为:".$foo1; //输出1这里主要的细节:当转换为 boolean 时,以下值被认…

oracle 如何终止存储过程的运行

0.查询正在执行的存储过程: select * from v$db_object_cache where locks > 0 and pins > 0 and typePROCEDURE;1. 在V$ACCESS视图中找到要停止进程的SID: 举例:存储过程名:CRH_ENTRY SELECT t.* FROM V$ACCESS t WHERE t.objectCRH_…

python install zabbix.4.0

1.安装 MySQLdb 模块; #!/bin/bash #this is rpm python Environment depends on function depends_rpm(){ yum clean all yum -y install gcc* python-devel python-pip mariadb mariadb-devel mariadb-server if [ $? -eq 0 ]thenpip install MySQL-python1.2.5 elsee…

asp.net 获取全部在线用户_Qamp;A | 在线考试问卷答疑

01.如何批量导入试题?如果您已经在word或者excel中准备好了考试文档,通过批量导入试题的方式,可以让考试问卷的制作更加方便快捷。详细了解批量导入考试的文本格式:【点击此处】02.如何进行考试随机抽题?老师事先建立题…

PHP 框架 模块化,Laravel 的模块化开发框架 Notadd RC1

本文我们要和大家分享 Laravel 的模块化开发框架 Notadd RC1 的介绍,它的优点是修复了首页编辑模式下滚动的BUG (Eleven),修复了后台菜单管理修改后不跳转的BUG (ganlanshu0211),修复后台 ESLint 的 Camelcase 的错误 (狒狒),暂时…

spring mvc 工作流程

1A)客户端发出http请求,只要请求形式符合web.xml 文件中配置的*.action的话,就由DispatcherServlet 来处理。 1B)DispatcherServlet再将http请求委托给映射器 的对象来将http请求交给对应的Action来处理 2&#xff0…

9-2 链表

package gather;import java.util.LinkedList; import java.util.List; import java.util.ListIterator;public class TestFour {public static void main(String[] args) {// TODO Auto-generated method stub/*** 1、通过整数遍历元素时,不要使用链表结构&#xf…

excel切片器_如何在Excel表格中使用切片器

切片器除了在数据透视表中会使用到,在Excel的表格功能下面,也是可以进行使用的。下面就来介绍一下如何使用切片器这个工具。创建和使用切片器1.首先就是要创建一个表格。选中目标区域,使用快捷键CtrlT,创建一个表格。2.点击“插入…

分阶段付款 学php,项目整理-支付宝的支付问题

支付宝作为一个被广泛使用的支付工具,在是用的时候可以被广泛使用。可以使用demo提取(由于当时开发时SDK下载路径无法下载,直接从DEMO中筛选了需要部分)------------------我是开始开发思路的分割线--------------------------本次主要是APP支付的流程。…

使用sqlldr导入文本数据到oracle

1.sqlldr介绍 用法: SQLLDR keywordvalue [,keywordvalue,...]有效的关键字:userid -- ORACLE 用户名/口令 control -- 控制文件名 log -- 日志文件名 bad -- 错误文件名 data -- 数据文件名 dis…