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. Linxu命令与文件的搜索 - which, whereis, locate, find

    which (寻找『运行档』) [root@www ~]# which [-a] command 选项或参数: -a :将所有由 PATH 目录中可以找到的命令均列出,而不止第一个被找到的命令名称 范 ...

  2. 安装docker及配置Android开发环境

    安装docker 官方原来的安装docker的脚本https://get.docker.com/已经过时,现在使用的是https://get.docker.com/,命令如下: curl -s htt ...

  3. Google主推-Android开发利器——Android Studio,这可能是最全的AS教程!

    Android Studio使用手册 "工欲善其事必先利其器" 作为一个Android开发人员来说,一款好的开发工具也是相当重要的,在相当长的时间礼,Google都是基于Eclip ...

  4. Access text files using SQL statements by DB Query Analyzer

    Access text files using SQL statements by DB Query Analyzer Ma Gen feng (Guangdong Unitoll Services ...

  5. javascript、ruby和C性能一瞥(2)

    好吧,最后让我们用C来实现,看看再能榨取多少性能.注意我没有改变算法,C的算法和之前的3种都是基本相同的: #include <stdio.h> #include <stdlib.h ...

  6. javascript中通过元素id和name直接取得元素

    我们知道一些第三方的js库对如何快速选取html中的元素做了一些简化,貌似十分高深莫测,其实也不然.而且js本身自带了对于特殊元素的简便选取的方法,下面就为大家简单介绍下. 在html中,一般最直接的 ...

  7. windows下ruby中显示中文的3种方法

    A: 1将x.rb编码为ascii格式 2 在x.rb开头加上 #code:gbk或者 #coding:gbk B: 1 将x.rb编码为utf-8格式 2 在x.rb开头加上 #code:utf-8 ...

  8. DB Query Analyzer 5.02 is distributed, 53 articles concerned have been published

    DB Query Analyzer is presented by Master Gen feng, Ma from Chinese Mainland. It has English version ...

  9. WebService学习--(一)webservice相关概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

  10. webpack 4.x 遇到的错误

    由于之前重装电脑,很多之前的小Demo 现在都跑不起来.特别是webpack一直在报错. webpack 安装node 全局安装webpack,webpack-cli(一定要全局安装) 项目初始化 w ...