zookeeper 客户端 zkCli.sh 的使用 查看节点 |
您所在的位置:网站首页 › zk客户端命令 › 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, 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 和 idworld: 它下面只有一个 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) permissionsCREATE©: 创建权限,可以在在当前 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 |