zookeeper客户端 zkCli使用及常用命令

时间:2022-08-25 07:48:21

上篇(http://www.cnblogs.com/yangzhenlong/p/8270835.html)zk伪集群搭建好后,使用zkCli连接zk服务

切换到zk1/bin 目录,执行zkCli.cmd -server localhost:2181

zookeeper客户端 zkCli使用及常用命令

查看zk客户端帮助

命令 h

zookeeper客户端 zkCli使用及常用命令

example:

查看根目录节点: ls /

zookeeper客户端 zkCli使用及常用命令

查看根节点状态:stat /

zookeeper客户端 zkCli使用及常用命令

查看根节点数据和详情:get /

zookeeper客户端 zkCli使用及常用命令

get和stat的区别是:get比stat(第一行)多返回节点的数据信息

在根目录下创建 永久node_1:create /node_1 "hello zk"

然后: ls /

zookeeper客户端 zkCli使用及常用命令

在node_1节点下创建 临时节点node_1_1

create -e /node_1/node_1_1 "node 1 1"

zookeeper客户端 zkCli使用及常用命令

quit 之后,再连接zk1,发现node_1_1不见了。说明临时节点,只是在客户端连接时有效

zookeeper客户端 zkCli使用及常用命令

在node_1节点下创建顺序节点 node_1_2,发现返回了 node_1_20000000001(序列)

create -s /node_1/node_1_2 "node 2 2"

zookeeper客户端 zkCli使用及常用命令

继续执行上面的命令,发现序列号+1,这就是顺序节点

create -s /node_1/node_1_2 "node 2 2"

zookeeper客户端 zkCli使用及常用命令

命令详细解释:摘自 http://blog.csdn.net/heihei36/article/details/70871074

zookeeper客户端命令详解

简介

查阅了网上相关资料,介绍zookeeper客户端命令并不是非常全面,大多数都是简单介绍ls、get、set、delete、stat这几个简单命令的,下面我把help中的所有命令简单介绍一下以供参考。

首先说明一下如何打开zk服务端和客户端,cd到zk安装目录下,运行bin/zkServer.shstart即可启动服务端,运行bin/zkCli.sh –server ip:port即可启动客户端。

help命令

显示客户所支持的所有命令,如:

ZooKeeper -server host:port cmd args

connecthost:port

getpath [watch]

lspath [watch]

setpath data [version]

rmrpath

delquota[-n|-b] path

quit

printwatcheson|off

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

statpath [watch]

close

ls2path [watch]

history

listquotapath

setAclpath acl

getAclpath

syncpath

redocmdno

addauthscheme auth

deletepath [version]

setquota-n|-b val path

connect命令

连接zk服务端,与close命令配合使用可以连接或者断开zk服务端。

如connect 127.0.0.1:2181

get命令

获取节点信息,注意节点的路径皆为绝对路径,也就是说必要要从/(根路径)开始。

如get /

hello world

cZxid = 0x0

ctime = Thu Jan 01 08:00:00 CST 1970

mZxid = 0x5

mtime = Thu Apr 27 15:09:00 CST 2017

pZxid = 0xc

cversion = 1

dataVersion = 2

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 11

numChildren = 1

详解:

hello world为节点数据信息

cZxid节点创建时的zxid

ctime节点创建时间

mZxid节点最近一次更新时的zxid

mtime节点最近一次更新的时间

cversion子节点数据更新次数

dataVersion本节点数据更新次数

aclVersion节点ACL(授权信息)的更新次数

ephemeralOwner如果该节点为临时节点,ephemeralOwner值表示与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0

dataLength节点数据长度,本例中为hello world的长度

numChildren子节点个数

ls命令

获取路径下的节点信息,注意此路径为绝对路径,类似于linux的ls命令。

如ls /zookeeper

set命令

设置节点的数据。

如set /zookeeper "hello world"

rmr命令

删除节点命令,此命令与delete命令不同的是delete不可删除有子节点的节点,但是rmr命令可以删除,注意路径为绝对路径。

如rmr /zookeeper/znode

delquota命令

删除配额,-n为子节点个数,-b为节点数据长度。

如delquota –n 2,请参见listquota和setquota命令。

quit命令

退出。

printwatches命令

设置和显示监视状态,on或者off。

如printwatches on

create命令

创建节点,其中-s为顺序充点,-e临时节点。

如create /zookeeper/node1"test_create" world:anyone:cdrwa

其中acl处,请参见getAcl和setAcl命令。

stat命令

查看节点状态信息。如stat /

cZxid = 0x0

ctime = Thu Jan 01 08:00:00 CST 1970

mZxid = 0x1f

mtime = Thu Apr 27 16:05:14 CST 2017

pZxid = 0xc

cversion = 1

dataVersion = 3

aclVersion = 0

ephemeralOwner = 0x0

dataLength = 5

numChildren = 1

与get命令大体相同,请参见get命令。

close命令

断开客户端与服务端的连接。

ls2命令

ls2为ls命令的扩展,比ls命令多输出本节点信息。

如 ls /zookeeper

history命令

列出最近的历史命令。

如history

0 - ls /

1 - ls /

2 - ls2 /

3 - history

4 - listquota /zookeeper

5 – history

基本格式为:命令ID-命令,可以与redo命令配合使用。

listquota命令

显示配额。

如listquota /zookeeper

absolute path is/zookeeper/quota/zookeeper/zookeeper_limits

Output quota for /zookeepercount=2,bytes=-1

解释:

/zookeeper节点个数限额为2,长度无限额。

setAcl命令

设置节点Acl。

此处重点说一下acl,acl由大部分组成:1为scheme,2为user,3为permission,一般情况下表示为scheme:id:permissions。

其中scheme和id是相关的,下面将scheme和id一起说明。

scheme和id

world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的

auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过kerberos来进行authencation, 也支持username/password形式的authentication)

digest: 它对应的id为username:BASE64(SHA1(password)),它需要先通过username:password形式的authentication

ip: 它对应的id为客户机的IP地址,设置的时候可以设置一个ip段,比如ip:192.168.1.0/16, 表示匹配前16个bit的IP段

super: 在这种scheme情况下,对应的id拥有超级权限,可以做任何事情(cdrwa)

permissions

CREATE(c): 创建权限,可以在在当前node下创建child node

DELETE(d): 删除权限,可以删除当前的node

READ(r): 读权限,可以获取当前node的数据,可以list当前node所有的child nodes

WRITE(w): 写权限,可以向当前node写数据

ADMIN(a): 管理权限,可以设置当前node的permission

综上,一个简单使用setAcl命令,则可以为:

setAcl /zookeeper/node1 world:anyone:cdrw

getAcl命令

获取节点Acl。

如getAcl /zookeeper/node1

'world,'anyone

: cdrwa

注:可参见setAcl命令。

sync命令

强制同步。

如sync /zookeeper

由于请求在半数以上的zk server上生效就表示此请求生效,那么就会有一些zk server上的数据是旧的。sync命令就是强制同步所有的更新操作。

redo命令

再次执行某命令。

如redo 10

其中10为命令ID,需与history配合使用。

addauth命令

节点认证。

如addauth digest username:password,可参见setAcl命令digest处。

使用方法:

一、通过setAcl设置用户名和密码

setAcl pathdigest:username:base64(sha1(password)):crwda

二、认证

addauth digest username:password

delete命令

删除节点。

如delete /zknode1

setquota命令

设置子节点个数和数据长度配额。

如setquota –n 4 /zookeeper/node 设置/zookeeper/node子节点个数最大为4

setquota –b 100 /zookeeper/node 设置/zookeeper/node节点长度最大为100

本文为原创,转载请注明出处。谢谢。

署名:嘿嘿

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

  1. ZooKeeper客户端 zkCli.sh 节点的增删改查

    zkCli.sh 在 bin 目录下的  zkCli.sh  就是ZooKeeper客户端 ./zkCli.sh -timeout 5000  -server 127.0.0.1:2181  客户端与 ...

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

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

  3. zookeeper 客户端 zkCli 命令详解

    该文写的比较详细 https://blog.csdn.net/feixiang2039/article/details/79810102

  4. ZooKeeper客户端 zkCli.sh 节点的配额设置

    首先使用 zkCli.sh 连接上ZooKeeper服务器 配额设置命令格式如下: setquota -n|-b val path -n:val设置子节点个数 -b:val设置节点的数据长度 如果我们 ...

  5. zookeeper客户端操作

    ZooKeeper客户端 zkCli.sh 节点的增删改查 在 bin 目录下的  zkCli.sh  就是ZooKeeper客户端 ./zkCli.sh -timeout 5000  -server ...

  6. ZooKeeper 之 zkCli.sh客户端的命令使用

    zkCli.sh的使用 ZooKeeper服务器简历客户端 ./zkCli.sh -timeout 0 -r -server ip:port ./zkCli.sh -timeout 5000 -ser ...

  7. zkCli的使用 常用的节点增删改查命令用法

    zkCli的使用 常用的节点增删改查命令用法 1. 建立会话  命令格式:zkCli.sh -timeout 0 -r -server ip:port ./zkCli.sh -server -time ...

  8. Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)

    8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...

  9. Zookeeper常用命令行及API

    一.Zookeeper常用命令行 1.启动zookeeper客户端(在启动zookeeper集群后启动进行调试) zkCli.sh 2.查看帮助.操作历史 help.history 3.查看当前Zno ...

随机推荐

  1. css样式思维导图

  2. js时间处理

    // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Dat ...

  3. JS, Node.js, npm简介

    序 听过JS,听过Node,也听过Node.js,还听过npm,然而并不是很清楚的知道都代表什么,这两天调接口,然后前端同学很忙,就自己把前端代码拿过来跑了,也趁机了解一下这几个概念,下边做个小的总结 ...

  4. 浅谈My SQL引擎的对比

    MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型IN ...

  5. python 爬取天猫美的评论数据

    笔者最近迷上了数据挖掘和机器学习,要做数据分析首先得有数据才行.对于我等平民来说,最廉价的获取数据的方法,应该是用爬虫在网络上爬取数据了.本文记录一下笔者爬取天猫某商品的全过程,淘宝上面的店铺也是类似 ...

  6. 【持续更新】JavaScript常见面试题整理

    [重点提前说]这篇博客里的问题涉及到了了JS中常见的的基础知识点,也是面试中常见的一些问题,建议初入职场的园友Mark收藏,本文会持续更新~ 1. 引入JS的三种方式 1.在HTML标签中直接使用,直 ...

  7. iOS APP上架被拒重新提交审核教程

    iOS APP审核比较严格,难免会出现被拒绝的情况,需要根据苹果反馈的问题修改后重新打包上传审核! 1.登录itunesconnect.https://itunesconnect.apple.com进 ...

  8. AI 学习路线

    [导读] 本文由知名开源平台,AI技术平台以及领域专家:Datawhale,ApacheCN,AI有道和黄海广博士联合整理贡献,内容涵盖AI入门基础知识.数据分析挖掘.机器学习.深度学习.强化学习.前 ...

  9. 【XSY2680】玩具谜题 NTT 牛顿迭代

    题目描述 小南一共有\(n\)种不同的玩具小人,每种玩具小人的数量都可以被认为是无限大.每种玩具小人都有特定的血量,第\(i\)种玩具小人的血量就是整数\(i\).此外,每种玩具小人还有自己的攻击力, ...

  10. 【sping揭秘】21、Spring动态数据源的切换

    对于多个数据源的时候,我们如何切换不同的数据源进行数据库的操作呢? 当然我们可以直接定义2个DataSource,然后在每次获取connection的时候,从不同的DataSource中获取conne ...