zookeeper 操作命令

摘要:
如ls/zookeeperset命令设置节点的数据。如set/zookeeper"helloworld"rmr命令删除节点命令,此命令与delete命令不同的是delete不可删除有子节点的节点,但是rmr命令可以删除,注意路径为绝对路径。如create/zookeeper/node1"test_create"world:anyone:cdrwa其中acl处,请参见getAcl和setAcl命令。如ls/zookeeperhistory命令列出最近的历史命令。listquota命令显示配额。如getAcl/zookeeper/node1'world,'anyone:cdrwa注:可参见setAcl命令。如sync/zookeeper由于请求在半数以上的zkserver上生效就表示此请求生效,那么就会有一些zkserver上的数据是旧的。

简介

查阅了网上相关资料,介绍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

转自https://blog.csdn.net/heihei36/article/details/70871074

免责声明:文章转载自《zookeeper 操作命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇winform程序 如何添加 系统托盘及右键菜单退出?繁体系统下如何快速将简体安装文件乱码恢复正常?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#中常用的经典文件操作方法

 C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw.WriteLine("追逐理想"); sw.WriteLine("kzlll"); sw.WriteLine(".NET笔记"); sw.Flush(); sw.Close(); C#拷贝文件...

SQLServer触发器

触发器的作用: 自动化操作,减少了手动操作以及出错的几率。 触发器是一种特殊类型的存储过程,它不同于前面介绍过的一般的存储过程。 【在SQL内部把触发器看做是存储过程但是不能传递参数】 一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。 触发器是一个功能强大的工具,在表中数据发生变化时自动强制执行。 触发器可以用于SQL S...

RMAN详细教程(一):基本命令代码

RMAN详细教程(一):基本命令代码RMAN详细教程(二):备份、检查、维护、恢复RMAN详细教程(三):备份脚本的组件和注释RMAN详细教程(四):备份脚本实战操作 一、target——连接数据库 1、本地: [oracle@oracle ~]$ rman target / 2、远程: [oracle@oracle ~]$ rman target sy...

Android智能指针sp wp详解

研究Android的时候,经常会遇到sp、wp的东西,网上一搜,原来是android封装了c++中对象回收机制。说明:1. 如果一个类想使用智能指针,那么必须满足下面两个条件:a. 该类是虚基类RefBase的子类或间接子类b. 该类必须定义虚构造函数。如virtual ~MyClass(); 2. 本文以类BBinder来进行说明,其余类使用sp或wp...

oracle审计

1、什么是审计审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_trail查看)中。默认情况下审计是没有开启的。不管你是否打开数据库的...

js数组删除(splice和delete)

最近一直在写js的数组,然后就发现了很奇怪的问题,后来才发现了规律。 删除数据的一行,一般有两种方法,一个是splice,一个是delete; splice:删除了数组后,数组的长度会自动变化。用法:arr.splice(2,1)——2是数组的下标值,1 代表输出一行数据。 delete: 删除了数组后,数组的长度不会变化。 用法:delete arr[2...