zookeeper客户端的使用

(1)   首先找到zookeeper自带客户端的位置

简单来说,zookeeper自带客户端位于zookeeper安装目录的bin目录下,以我的为例:

(2)   运行zkCli.sh,建立和zookeeper服务端的连接

 # ./zkCli.sh –timeout  –r –server ip:port
 -timeout      timeout指定当前client与zkserver的连接超时时间(毫秒),如果在给定时间内zkserver没有client端发来的心跳,则连接失效;
-r 只读模式,Client只读取zk数据;不指定则Client可以读和写
-server ip:port 要连接哪一台zkserver,port默认2181. Zk由多台机器组成,连接任意一台看到的zk上的数据都是相同的(统一视图)

正常连接zkserver后,Client上看到的提示信息,最后一行提示信息会表示,已经连接到指定的zkserver,  当前的session id=0(全局内唯一的session)

(3)   不记得能用哪些命令和zkserver交互,问问它吧

[zk: slave1:(CONNECTED) ] help

Zookeeper提供给Client使用的命令和操作数据库的命令非常类似,可以简单归类为:增、删、改、查4个大类

查询命令

查询子节点列表   ls path

和linux命令类似, 将列出绝对路径path下的所有子节点信息(列出1级,并不递归)

查询节点状态  stat path

将列出绝对路径path对应的znode节点的状态信息,也就是znode元数据

[zk: slave1:(CONNECTED) ] stat /zookeeper

注: pZxid表示该节点的子节点列表,最后一次被更新的时间(事务ID),新增子节点,删除子节点都会导致pZxid被刷新

增强版的ls path       ls2 path

ls2 path返回的信息包括2部分:子节点列表 + 当前节点的stat信息

查询节点保存的数据  get path

列出节点保存的数据,以及节点的元数据(相当于get path内部调用了stat path)

创建命令

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

path       要创建的znode绝对路径
data znode保存的数据
acl znode的访问权限
-s 要创建的znode是顺序节点
-e 要创建的znode是临时节点
-s -e 临时的顺序节点(没有指定类型则是永久节点)

创建永久节点

[zk: slave1:(CONNECTED) ] create /node_1      # 永久节点

在上一节点的基础上创建1个临时子节点

[zk: slave1:(CONNECTED) ] create –e /node_1/node_1_1 

临时子节点会在client端退出后,被zk自动删除

[zk: slave1:(CONNECTED) ] quit
# ./zkCli.sh –timeout –server slave:
[zk: slave1:(CONNECTED) ] ls /node_1 #空

创建1个顺序节点,写入数据123  白色是zk自动添加的序列号,10位数字

[zk: slave1:(CONNECTED) ] create –s /node_1/node_1_1

再创建1个序列节点,相同path,  zk自动添加序列号

顺序节点会一直保留,client退出zk并不删除节点

创建1个临时顺序节点

[zk: slave1:(CONNECTED) ] create –e–s /node_1/node_1_1

Client退出并重新连接zk, 临时顺序节点在Client退出后自动删除

修改命令

set path data [version]

version    手工指定znode的数据版本号(version), 默认zk对version自动从0开始累加

第一次修改znode数据,dataversion自动加1

第二次修改znode数据,dataversion自动加1

第三次修改znode数据,手动写入的版本号必须和当前版本号相同,否则报错

修改节点数据,并手动写入当前版本号后,zk还是自动递增数据版本号

总结:如果Client在手工指定版本为当前版本号的基础上,还是运行出错,说明期间已经有另外的client对该节点的数据进行了更新

 

删除命令

rmr path

特点:递归删除

delete  path [version]

特点:删除的节点不能有子节点

配额命令

setquota –n|-b value path

Zk允许我们设置znode的数据长度以及子节点个数
*-n value 设置znode的子节点个数,number
*-b value 设置znode的数据长度,byte

注意:超过配额的子节点可以创建成功,zk只是在log中记录一条警告信息(-b, -n都是只报警)

Zookeeper安装目录下的bin目录中的zookeeper.out中记录

listquota  path

查看指定znode的配额

Stat中的count=自己+子节点个数, bytes=自己+子节点数据长度

delquota –n|-b  path

删除path表示的znode上指定类型的配额

其他命令

[zk] connect host:port    # 连接另一个zkserver

[zk] close                # 关闭connect方式的连接

[zk] history              # 列出执行过的历史命令

[zk] redo 编号             # 再次执行history中编号对应的命令

04_zookeeper客户端使用及常用命令的更多相关文章

  1. Mac下配置git环境和客户端SourceTree+Git常用命令大全(Mac 10.12)

    前言: 如果不想折腾,直接下载GitHub桌面端,高度集成git,不需要学习git的任何命令. https://desktop.github.com/ 一.配置git环境 1.上官网https://g ...

  2. 客户端Git的常用命令

    (1)git clone 服务器用户名@服务器IP:~/Git目录/.git 功能:下载服务器端Git仓库中的文件或目录到本地当前目录. (2)git status 功能:查看Git仓库中的文件状态. ...

  3. mongodb客户端操作常用命令(续)

    之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...

  4. git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用

    1.git常用命令 查看命令: 1.git --help 查看git所有命令 2.git clone -help 查看git clone命令的细节 3.git config -l   查看当前所有配置 ...

  5. memcached学习——常用命令+基于java客户端的3种简单实现(二)

    常用命令: memcached设计的原则就是简单,所以支持的命令也不是特别多~ 1.查看memcached的状态,主要用于分析内存的使用状况.优化内存分配等 stats 查看memcached的运行状 ...

  6. PostgreSQL客户端psql常用命令

    使用psql客户端访问数据库, 列出了psql常用命令和参数. 常用命令 -- 使用指定用户和IP端口登陆 psql -h 10.43.159.11 -p 5432 -U postgres -W -- ...

  7. 以太坊geth客户端下的一些常用命令

    这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以 ...

  8. GIT常用命令笔记

    最近在做了一个自己的项目.两个人合作的,所以需要用到版本管理工具.本来打算学一下自己搭建svn的,后来朋友推荐我用git,免费,流行,好用,逼格.所以就学习了一下.发现这个git与已经使用惯了的svn ...

  9. supervisor 安装、配置、常用命令

    前言 在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务. 所以,就需要一个工具,时刻监控 web ...

随机推荐

  1. 并发编程 - 进程 - 1.开启子进程的两种方式/2.查看pid/3.Process对象的其他属性或方法/4.守护进程

    1.开启子进程的两种方式: # 方式1: from multiprocessing import Process import time def task(name): print('%s is ru ...

  2. LeetCode_Insertion Sort List

    题目:Sort a linked list using insertion sort,即仿照插入排序(直接插入排序)对一个链表排序. 插入排序的思想:总共进行n-1趟排序,在排列第i个元素时,前面的i ...

  3. Flume 1.7 源代码分析(四)从Source写数据到Channel

    Flume 1.7 源代码分析(一)源代码编译 Flume 1.7 源代码分析(二)总体架构 Flume 1.7 源代码分析(三)程序入口 Flume 1.7 源代码分析(四)从Source写数据到C ...

  4. 使用paramiko执行远程linux主机命令

    paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...

  5. matlab实现MSER(最大极值稳定区域)来进行文本定位

    一.自然场景文本定位综述   场景图像中文本占据的范围一般都较小,图像中存在着大范围的非文本区域.因此,场景图像文本定位作为一个独立步骤越来越受到重视.这包括从最先的CD和杂志封面文本定位到智能交通系 ...

  6. linux ipc/its

    linux进程间双向消息队列 server.c #include <stdio.h> #include <stdlib.h> #include <string.h> ...

  7. 八、网页版消息推送SDK-WebSockets

    介绍 由于项目组需求.最近在研究消息推送服务平台.结合业务和使用场景分析最终选择的是 Mosquitto 消息服务器. Mosquitto 服务器的安装.配置.集群搭建 我就不在这多说了.有兴趣的可以 ...

  8. C语言可以分配的最大内存

    前言 最近用C刷PAT算法题目, 发现C语言有太多需要关注大小范围的东西必须 知道, 虽说挺麻烦, 但也挺有意思. int最大值是多少 首先就是int类型的取值范围, 这个太常用. C语言标准规定最低 ...

  9. MapReduce Unit Test

    以前用java写MR程序总不习惯写单元测试,就是查错也只是在小规模数据上跑一下程序.昨天工作时,遇到一个bug,查了好久也查出来.估计是业务逻辑上的错误.后来没办法,只好写了个单元测试,一步步跟踪,瞬 ...

  10. 参数或变量中有语法错误。 服务器响应为: mail from address must be same as authorization user

    企业qq发邮件失败,提示: 参数或变量中有语法错误. 服务器响应为: mail from address must be same as authorization user 解决办法: 登录邮箱,设 ...