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命令的更多相关文章

  1. ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作

    问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...

  2. ZooKeeper学习第三期---Zookeeper命令操作

    一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...

  3. 【Zookeeper系列】Zookeeper命令操作(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...

  4. 5、Zookeeper命令操作

    一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...

  5. 【转】ZooKeeper学习第二期--Zookeeper命令操作

    一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或n ...

  6. Zookeeper命令操作

    Zookeeper支持某些特定的四字命令字母与其的交互.他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息.用户在客户端可以通过telnet或nc向Zookeeper提交相应的命 ...

  7. zk 06之:ZooKeeper命令、命令行工具及简单操作

    常用命令ZooKeeper 支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 nc 向 ZooK ...

  8. ZooKeeper学习第三期---Zookeeper命令操作(转)

    转载来源:https://www.cnblogs.com/sunddenly/p/4031881.html 一.Zookeeper的四字命令 Zookeeper支持某些特定的四字命令字母与其的交互.他 ...

  9. vscode插件开发之如何玩转vscode命令

    这里以插件开发为例,VsCode之所以那么强大是因为它背后有千千万万的开发者们为其开发大量功能插件,WordPress同理. 那么如何玩转VsCode命令呢(以插件开发为例)? 官方文档必不可少 ht ...

随机推荐

  1. HibernateTemplate 查询原生sql及ljava.lang.object cannot be cast to

    /** * 使用sql语句进行查询操作 * @param sql * @return */ public List queryWithSql(final String sql){ List list ...

  2. LeetCode之“链表”:Partition List

    题目链接 题目要求: Given a linked list and a value x, partition it such that all nodes less than x come befo ...

  3. 30多种iOS常用动画

    转自:http://blog.csdn.net/zhibudefeng/article/details/8691567 // //  CoreAnimationEffect.h //  CoreAni ...

  4. makemenuconfig学习

    内核配置: make config:基于文本模式的交互式配置 make menuconfig:基于文本模式的菜单型配置 <*>文件经过编译由.c文件到.o文件,最后链接压缩为内核镜像,它存 ...

  5. asp.net session分布式共享解决方案

    Session共享是分布式系统设计时必须考虑的一个重要的点.相比较java中的session共享解决方案,.net中的解决方案还是比较少,MemcachedSessionProvider类库是比较优秀 ...

  6. Qt Creator 更改默认构建目录到工程目录下

    Qt Creator 更改默认构建目录到工程目录下 步骤 工具->选项->构建和运行->概要->Default build directory->去掉第一个". ...

  7. Loader转换器

    一.简介 webpack本身只能处理js模块,Loader可以理解为模块和资源的转换器,它本身是一个函数,接受文件作为参数,返回转换的结果.因此,我们就能通过require来加载任何类型的模块和文件. ...

  8. oracle面试题目总结

    阿里巴巴公司DBA笔试题  http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml   注:以下题目,可根据自己情况挑选题目作答,不必 ...

  9. python3 数据科学基础

    第一章 1.Anaconda(最著名的python数据科学平台) 下面小伙伴们咱们来初初识下Anaconda吧 What is Anaconda???? 回答: (1).科学计算的平台 (2).有很多 ...

  10. sharesdk for android集成调试的几个问题

    1.一定要下载最新版,这个东西目前版本升级很频繁,证明产品本身还不稳定,最新版bug会少一点 2.下载最新版SDK的时候,跟随下载最新Sample,官网文档的示例代码及时性很差. 3.调试的几个Key ...