玩转zookeeper命令
zkCli 是 zookeeper 原生的与 zk服务群连接的客户端的程序。
1.如何使用zkCli,sh 连接server 与参数
2.zkCli 下的增删查改指令 与 配额 quota
1.如何使用zkCli,sh 连接server 与参数
可选的参数:
./zkCli.sh
-timeout 以ms作为统计单位
-r 只读模式, 当半数zk节点down,此时对zk集群不能操作。如果加上这个参数,能连接上集群,对zk集群进行操作(只读)读取数据。
经测试:集群工作状态正常的时候,也可以加上这个参数连接zookeeper集群。此时可以对zk集群进行操作。
-server ip:port 连接zookeeper, 用于连接远程的zookeeper.
一个连接示例:
zkCli.sh -r -timeout 2000 -server 10.202.4.22:2181
一些基础指令:
退出 zkCli 客户端
quit
帮助指令
h
2.zkCli 下的增删查改指令 与 配额 quota
查询 节点与数据
ls path [watch]
get path [watch]
stat path [watch]
ls2 path [watch]
ls path [watch] :查询指定路径下的子节点
示例:
ls /
get path [watch] : 查询指定节点中的数据,如果节点中有数据
示例:
get /test/username
stat path [watch] : 查询指定节点的一些描述信息
示例:
stat /test
cZxid = 0x20f //创建的事务id
ctime = Sat Nov 05 14:46:03 CST 2016 //创建的时间
mZxid = 0x20f //最后一次修改的事务id
mtime = Sat Nov 05 14:46:03 CST 2016 //最后一次修改的时间
pZxid = 0x22e
cversion = 9
dataVersion = 0 //数据的版本,每当数据被修改一次,版本号就会被加1
aclVersion = 0
ephemeralOwner = 0x0 //
dataLength = 6 //该节点存储的数据 的数据长度
numChildren = 3 //该节点下面有几个子节点
ls2 path [watch] : 相当于 ls 与 stat 指令的合成的效果
==============================
增加 节点与数据
创建有根路径的节点的时候,要确保上一层的节点要存在,否则会报错
create [-s] [-e] path data acl
create [-s] [-e] path data acl
-s: sequence 模式, 创建后会生成原节点+序列号的节点,再次执行相同命令会产生序列号加1的节点。
-e: 临时节点与数据, 关闭连接后数据就会被删除。
data 节点中存放的数据
acl 控制权限, 具体请参看其他文章
示例:
先创建节点,在查询节点中的内容。
create /test2 111
get /test2
-s , 创建序列节点
create -s /test2/seq 000 执行多次,注意 value 值一定要提供
===================
修改 节点与数据
set path data [version]
version : 可选, 默认设置为 stat 该节点的版本, 若强制加上则应设置为stat 该节点查询到的版本,
否则会报错
设置数据,注意其中的版本号 与数据变化
get /test2/node
set /test2/node 13
get /test2/node
=====================================
删除 节点与数据
rmr path
delete path [version]
delete path [version] :删除节点,确保该节点下面没有节点否则会报错。
示例:
节点下面有节点,不能删除
delete /test2
节点下面不存在子节点, 可以删除
ls /test2
delete /test2/node
ls /test2
rmr path :递归删除该节点 与 该节点的子节点。
示例:
rmr /test2
==========================
配额 quota
配额机制
zookeeper 的配额机制可以设置两种配额。
-n 设置子节点的数量,包括其自身。
-b 节点中数据的长度。
对于超出配额,系统不会导致插入或者修改不成功,但是会在 zookeeper.out 中生成错误日志。
增加配额
setquota -n|-b val path
-n 设置子节点的配额数量
-b 设置节点内容的长度
查询配额
listquota path
-1 表示无限, 即没有限制
删除配额
delquota [-n|-b] path
注意配额一旦设置完成,只能删除了重新设置,setquota 不能重置配额
示例:
0.tail -f zookeeper.out 跟踪日志
1.设置配额
2.查询配额
3.设置超过配额的数量
4.查看日志的报错
指令:
日志
==============================
其他指令
历史指令
history //显示历史的执行指令
redo cmdno //重新执行某条指令
示例:
连接指令
connect host:port //连接到一台远程的zk上
close
示例:
ZK的节点有5种操作权限:
CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)
注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限
身份的认证有4种方式:
world:默认方式,相当于全世界都能访问
auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
ip:使用Ip地址认证
设置访问控制:
方式一:(推荐)
1)增加一个认证用户
addauth digest 用户名:密码明文
eg. addauth digest user1:password1
2)设置权限
setAcl /path auth:用户名:密码明文:权限
eg. setAcl /test auth:user1:password1:cdrwa
3)查看Acl设置
getAcl /path
方式二:
setAcl /path digest:用户名:密码密文:权限
注:这里的加密规则是SHA1加密,然后base64编码。
参考:
1、http://www.cnblogs.com/yjmyzz/p/zookeeper-acl-demo.html
2、http://zookeeper.apache.org/doc/r3.1.2/zookeeperProgrammers.html
玩转zookeeper命令的更多相关文章
- ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作
问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...
- ZooKeeper学习第三期---Zookeeper命令操作
一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...
- 【Zookeeper系列】Zookeeper命令操作(转)
原文链接:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...
- 5、Zookeeper命令操作
一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...
- 【转】ZooKeeper学习第二期--Zookeeper命令操作
一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...
- Zookeeper命令操作
Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或nc向Zookeeper提交相应的命 ...
- zk 06之:ZooKeeper命令、命令行工具及简单操作
常用命令ZooKeeper 支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 nc 向 ZooK ...
- ZooKeeper学习第三期---Zookeeper命令操作(转)
转载来源:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...
- vscode插件开发之如何玩转vscode命令
这里以插件开发为例,VsCode之所以那么强大是因为它背后有千千万万的开发者们为其开发大量功能插件,WordPress同理. 那么如何玩转VsCode命令呢(以插件开发为例)? 官方文档必不可少 ht ...
随机推荐
- Android NDK开发三:java和C\C++交互
转自:http://www.cnblogs.com/shangdahao/archive/2013/05/02/3053971.html 1.定义native方法并加载动态链接库: public cl ...
- C语言实现牛顿迭代法解方程
利用迭代算法解决问题,需要做好以下三个方面的工作: 一.确定迭代变量 在可以用迭代算法解决的问题中,我们可以确定至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量. 二.建立迭 ...
- 【Qt编程】基于Qt的词典开发系列<十一>系统托盘的显示
本文主要讨论Qt中的系统托盘的设置.系统托盘想必大家都不陌生,最常用的就是QQ.系统托盘以简单.小巧的形式能让人们较快的打开软件.废话不多说,下面开始具体介绍. 首先,新建一个Qt Gui项目,类型选 ...
- XMPP系列(四)---发送和接收文字消息,获取历史消息功能
今天开始做到最主要的功能发送和接收消息.获取本地历史数据. 先上到目前为止的效果图: 首先是要在XMPPFramework.h中引入数据存储模块: //聊天记录模块的导入 # ...
- linux终端用户登录流程
终端可以通过连线,猫或网络(ssh,telnet,rlogin)和unix相连. 对于每个物理终端端口,都有一个getty监视,getty是由init程序启动的. getty收到用户名->调用l ...
- Log4j.properties 配置详解
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- break和continue的简单介绍
1.break break 用于完全结束一个循环,跳出循环体!不管是哪种循环,如果在程序中遇到Break,系统将完全结束该循环,开始执行循环之后的代码: public class TestBreak ...
- OpenLayers3中wfs的属性查询
var vector = new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON(), u ...
- C++——虚函数问题小集
学习C++ 不可避免地会遇到虚函数的问题,下面几个问题在学习初期或多或少会存在一些疑惑,所以便将其总结了下来. 1.为什么静态成员函数.构造函数不能定义为虚函数? 因为静态成员函数是一个大家共享的一个 ...
- MySQL中的行级锁,表级锁,页级锁
在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引 ...