zookeeper 客户端 zkCli.sh 的使用 查看节点
登录 zookeeper client[root@NYSJHL99-54 zookeeper]# cd /usr/local/zookeeper/bin[root@NYSJHL99-54 bin]# ./zkCli.sh -server 127.0.0.1:2181[zk: 127.0.0.1:2181 (CONNECTED) 0] ls /[dubbo, search-card, re...
登录 zookeeper client
[root@NYSJHL99-54 zookeeper]# cd /usr/local/zookeeper/bin
[root@NYSJHL99-54 bin]# ./zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181 (CONNECTED) 0] ls /
[dubbo, search-card, redis, zookeeper]
[zk: 127.0.0.1:2181 (CONNECTED) 1]
zk 客户端命令
ZooKeeper 命令行工具类似于 Linux 的 shell 环境,不过功能肯定不及 shell 啦,但是使用它我们可以简单的对 ZooKeeper 进行访问,数据创建,数据修改等操作。使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务,连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。
** 命令行工具的一些简单操作如下:**
- \1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
- \2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
- \3. 创建文件,并设置初始内容: create /zk “test” 创建一个新的 znode 节点 “ zk ” 以及与它关联的字符串
- \4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
- \5. 修改文件内容: set /zk “zkbak” 对 zk 所关联的字符串进行设置
- \6. 删除文件: delete /zk 将刚才创建的 znode 删除
- \7. 退出客户端: quit
- \8. 帮助命令: help
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🆔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©: 创建权限,可以在在当前 node 下创建 child node
DELETE(d): 删除权限,可以删除当前的 node
READ®: 读权限,可以获取当前 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
更多推荐
所有评论(0)