一、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指令详解
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
五、setquota指令详解
ZooKeeper quota机制⽀持节点个数(znode)和空间⼤⼩(字节数)
setquota -n -d
-n表示设置znode count限制
-b 表示设置znode数据的字节⼤⼩限制
⼀般-n -b不能同时设定
本文详细解读了Zookeeper客户端的常用命令,包括help、create、get、setAcl、setquota及它们的用法示例。重点介绍了节点类型、权限设置、配额管理和数据操作,适合Zookeeper初学者和开发者查阅。
1315

被折叠的 条评论
为什么被折叠?



