04_zookeeper客户端使用及常用命令
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客户端使用及常用命令的更多相关文章
- Mac下配置git环境和客户端SourceTree+Git常用命令大全(Mac 10.12)
前言: 如果不想折腾,直接下载GitHub桌面端,高度集成git,不需要学习git的任何命令. https://desktop.github.com/ 一.配置git环境 1.上官网https://g ...
- 客户端Git的常用命令
(1)git clone 服务器用户名@服务器IP:~/Git目录/.git 功能:下载服务器端Git仓库中的文件或目录到本地当前目录. (2)git status 功能:查看Git仓库中的文件状态. ...
- mongodb客户端操作常用命令(续)
之前有写过一篇mongodb客户端的操作常用命令 ,今天接着来记录分享一些关于mongodb账户权限设置的命令操作 上期mongodb客户端的操作常用命令地址:https://www.cnblogs. ...
- git常用命令,git版本控制和Xcode结合使用,用Xcode提交到github,github客户端使用
1.git常用命令 查看命令: 1.git --help 查看git所有命令 2.git clone -help 查看git clone命令的细节 3.git config -l 查看当前所有配置 ...
- memcached学习——常用命令+基于java客户端的3种简单实现(二)
常用命令: memcached设计的原则就是简单,所以支持的命令也不是特别多~ 1.查看memcached的状态,主要用于分析内存的使用状况.优化内存分配等 stats 查看memcached的运行状 ...
- PostgreSQL客户端psql常用命令
使用psql客户端访问数据库, 列出了psql常用命令和参数. 常用命令 -- 使用指定用户和IP端口登陆 psql -h 10.43.159.11 -p 5432 -U postgres -W -- ...
- 以太坊geth客户端下的一些常用命令
这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以 ...
- GIT常用命令笔记
最近在做了一个自己的项目.两个人合作的,所以需要用到版本管理工具.本来打算学一下自己搭建svn的,后来朋友推荐我用git,免费,流行,好用,逼格.所以就学习了一下.发现这个git与已经使用惯了的svn ...
- supervisor 安装、配置、常用命令
前言 在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常.报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务. 所以,就需要一个工具,时刻监控 web ...
随机推荐
- golang处理 json中非法字符
原文: Hi there, I just discovered Go and decided to port a little program to Go. The program reads JSO ...
- Apache mahout 源码阅读笔记--DataModel之FileDataModel
要做推荐,用户行为数据是基础. 用户行为数据有哪些字段呢? mahout的DataModel支持,用户ID,ItemID是必须的,偏好值(用户对当前Item的评分),时间戳 这四个字段 {@code ...
- 在虚拟机中还原GHO镜像系统
前置知识 本文精简干练,全是干货.首先要知道,一个原版的Windows系统下载下来就是一个iso格式的文件,也被称为一个镜像.另外还有一种镜像是使用ghost软件制作的,格式为gho的镜像,而ghos ...
- Charles 抓包工具的使用
抓包工具有很多,目前用过的有Charles, Fiddler, burpsuite.下面主要是Charles 的应用实例. 一. 用Charles抓包 1. PC 抓包 打开Charles, 确保“录 ...
- Linux系统——sed命令
sed命令精讲 cat工作原理 cat命令只想文件,把文件打开后,将文件中所有内容一次性读到内存中,从内存里一次性输出到屏幕上,此时可能存在内存装不下的情况,因此cat命令只能查看小文件内容,不能读取 ...
- discuz debug下载地址
Discuz!X会自带Debug模式,主要是用于排查性能问题.垃圾站建议当如果您的站点调试完之后,一定要把debug模式关闭,以免其他用户会获取到一些敏感信息.在调试过程中,config文件配置的 ...
- ruby中的self
self,自己,在ruby中表示当前对象或默认对象.程序执行的任一时刻,有且仅有一个self. 1.谁成为self,在什么位置成为self? 要知道哪个对象是self,就必须知道当前的上下文.上下文主 ...
- Lua 基础总结
lua 数组下标从 1 开始, 不是 0 lua 逻辑运算符 与 或 非 就是英文 and or not local 局部变量 数据类型:lua是一门动态类型语言,变量没有类型,只有值才有 ...
- 有界、无界队列对ThreadPoolExcutor执行的影响
本文转载自https://blog.csdn.net/kusedexingfu/article/details/72491864 Java提供了4钟线程池: newCachedThreadPool n ...
- 使用Node.js快速搭建简单的静态文件服务器
做前端有时会采用一些复杂框架,在文件系统中直接打开页面(用file:///方式打开),往往会报跨域的错,类似于“XMLHttpRequest cannot load ...(文件名). Cross o ...