Zookeeper的客户端操作

本文详细解读了Zookeeper客户端的常用命令,包括help、create、get、setAcl、setquota及它们的用法示例。重点介绍了节点类型、权限设置、配额管理和数据操作,适合Zookeeper初学者和开发者查阅。

一、zookeeper客户端的命令解释

linu帮助命令解释

[zk: localhost:2181(CONNECTED) 0] help  帮助命令
ZooKeeper -server host:port cmd args
注意:直接执⾏zkCli.sh 默认连接的是localhost:2181 本地的zookeeper服 务器,想连接其他的服务器两种⽅式:zkCli.sh -server master:2181 或者 先通过zkCli.sh连接到本地的服务器 再使⽤connect master:2181 stat path [watch] 查看节点的状态信息,会⾃动建⽴监听机制,监听当前 节点的状态改变,默认只能监听⼀次
set path data [version]
设置节点的数据,会⾃动建⽴监听机制,监听当前节点的状态改变,默认只能监听⼀次
set path data [version] 设置节点的数据
ls path [watch]
获取路径下的节点信息,路径为绝对路径,会⾃动建 ⽴监听机制,监听当前节点的状态改变,当我们创建新的⼦节点等活动时可以看到改变., 默认只能监听⼀次
例如:会显示信息:说明我们对/aa进⾏了监听,发现aa下新增了⼦节点等
WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/aa
delquota [-n|-b] path  删除节点配额
ls2 path [watch]  获取路径下的节点详情信息,路径为绝对路径,会⾃动 建⽴监听机制,监听当前节点的状态改变
setAcl path acl 设置节点ACL(授权信息)
setquota -n|-b val path 设置⼦节点个数和数据⻓度配额
history 列出最近的历史命令
redo cmdno 再次执⾏某命令
如:redo 5 其中5是命令的ID,需要与history配合使⽤
printwatches on|off 设置和显示监视状态
delete path [version] 删除没有⼦节点的节点
sync path 强制同步 由于请求在半数以上的zk server上⽣效就表 示此请求⽣效,那么就会有⼀些zk server上的数据是旧的。sync命令就是强制同步 所有的更新操作。
listquota path 显示配额
rmr path 递归删除
get path [watch] 获取节点信息,注意节点的路径全部是绝对路径(必须 从/开始),会⾃动建⽴监听机制,监听当前节点的状态改变,注意这⾥只能是set操作时 可监听,默认只能监听⼀次
create [-s] [-e] path data acl
创建节点
         -s 带顺序的节点
         -e 临时节点
addauth scheme auth 节点认证。
addauth digest username:password,可参⻅setAcl命令digest 处
使⽤⽅法:
        ⼀、通过setAcl设置⽤户名和密码
                setAcl pathdigest:username:base64(sha1(password)):crwda
        ⼆、认证addauth digest username:password
quit 退出
getAcl path 获取节点ACL
close 断开客户端与服务器连接
connect host:port 连接zk服务器,close命令配合使⽤可以连接后者 断开zk服务器

二、create指令详解

zknode有四种类型
zookeeper中的znode有多种类型:
        1.PERSISTENT 持久的:创建者就算跟集群断开联系,该类节点也会持久存 在与zk集群中
        2.EPHEMERAL 短暂的:创建者⼀旦跟集群断开联系,zk就会将这个节 点删除
        3.SEQUENTIAL 带序号的:这类节点,zk会⾃动拼接上⼀个序号,⽽ 且序号是递增的
1.持久的带序号的         zkCli.sh         create         -s         /a         ss         默认是持久的,-s代表带序号的
2.短暂的带序号的         zkCli.sh         create         -e         -s         /a         ss 短暂的-e代表短暂的,-s代表带序号的
注意:在测试短暂类型时,退出当前的客户端,创建的节点会消失。退出客户端⽅ 式:quit
3.持久的不带序号的         zkCli.sh         create         /a         ss         默认是持久的,
4.短暂的不带序号的         zkCli.sh         create         -e /        a         ss         短暂的的

三、get指令详解

[zk: localhost:2181(CONNECTED) 21] get /zookeeper/quota/aa
hehe         节点数据信息
cZxid = 0x800000002         节点创建时的zxid
ctime = Thu May 09 03:41:15 CST 2019        节点创建的时间
mZxid = 0x800000002         对应节点最近⼀次修改的时间,与⼦节点⽆关
mtime = Thu May 09 03:41:15 CST 2019         节点最近⼀次更新的时间
pZxid = 0x800000002         对应节点与⼦节点(或者⼦节点)的修改的时间,与孙⼦节点⽆关
cversion = 0         ⼦节点数据更新次数
dataVersion = 0         本节点数据更新次数
aclVersion = 0         节点授权信息(ACL)的更新次数
ephemeralOwner = 0x0         如果该节点为临时节点,ephemeralOwner值表示 与该节点绑定的session id. 如果该节点不是临时节点,ephemeralOwner值为0
dataLength = 4         节点的数据⻓度
numChildren = 0         ⼦节点的个数

四、setAcl指令详解

schemeid
world: 它下⾯只有⼀个id, anyone, world:anyone代表任何⼈, zookeeper中对所有⼈有权限的结点就是属于world:anyone
auth: 它不需要id, 只要是通过authenticationuser都有权限 zookeeper⽀持通过kerberos来进⾏authencation, 也⽀持 username/password形式的authentication)
digest: 它对应的idusername:BASE64(SHA1(password)),它需要先通过 username:password形式的authentication
ip: 它对应的id为客户机的IP地址,设置的时候可以设置⼀个ip段,⽐如 ip:192.168.1.0/16, 表示匹配前16bitIP
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): 管理权限,可以设置当前nodepermission
综上,⼀个简单使⽤setAcl命令,则可以为:
setAcl /zookeeper/node1 world:anyone:cdrw

五、setquota指令详解

ZooKeeper quota机制⽀持节点个数(znode)和空间⼤⼩(字节数)
setquota  -n  -d
-n表示设置znode count限制
-b 表示设置znode数据的字节⼤⼩限制
⼀般-n -b不能同时设定
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值