zookeeper 客户端 zkCli.sh 的使用 查看节点

您所在的位置:网站首页 zk客户端命令 zookeeper 客户端 zkCli.sh 的使用 查看节点

zookeeper 客户端 zkCli.sh 的使用 查看节点

2024-07-12 07:27| 来源: 网络整理| 查看: 265

登录 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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3