赞
踩
1.zk 启停操作
- 1)启动zk
- ./zkServer.sh start zoo1.cfg
- #如果使用的是conf 目录下的默认配置文件 zoo.cfg,可以直接执行 ./zkServer.sh start 启动,否则报如下错误
- grep: /usr/local/zookeeper/bin/../conf/zoo.cfg: No such file or directory
-
- 2)停止zk
- ./zkServer.sh stop
- 3)显示zk状态
- ./zkServer.sh status
- /usr/bin/java
- ZooKeeper JMX enabled by default
- Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
- Client port found: 2181. Client address: localhost. Client SSL: false.
- Mode: standalone
2.连接ck
./zkCli.sh -server 127.0.0.1:2181
3.创建znode
- create [-s] [-e] [-c] [-t ttl] path [data] [acl]
- 3.1 创建持久节点
- 1)创建空节点
- create /test_shao
- 2)创建节点时同时指定节点内容
- create /test_shao 测试内容
-
- 3.2 创建顺序持久节点
- [zk: 127.0.0.1:2181(CONNECTED) 51] create -s /test_shao/test
- Created /test_shao/test0000000003
- [zk: 127.0.0.1:2181(CONNECTED) 52] create -s /test_shao/test
- Created /test_shao/test0000000004
- ##不加 -s 参数第二次创建会报已存在。-s 参数会默认给创建的节点加上序号
-
- 3.3 创建临时节点
- create -e /test_shao/test_e_node_xx 这是一个临时节点
-
- getEphemerals /test_shao
- #查看 /test_shao 节点下的所有临时节点
-
- 3.4 创建顺序临时节点
- [zk: 127.0.0.1:2181(CONNECTED) 54] create -es /test_shao/test
- Created /test_shao/test0000000005
- [zk: 127.0.0.1:2181(CONNECTED) 55] create -es /test_shao/test
- Created /test_shao/test0000000006

4.删除znode
- delete [-v version] path
- deleteall path [-b batch size]
- 1) delete 删除没有任何子节点的节点
- delete /test_shao
- #如果/test_shao 节点有子节点的话,报 Node not empty: /test_shao,如果要删除该节点及其子节点可以使用 deleteall
-
- 2) deleteall 删除节点及其子节点
- zk: 127.0.0.1:2181(CONNECTED) 19] ls -R /test_shao
- /test_shao
- /test_shao/test_node_xx
- [zk: 127.0.0.1:2181(CONNECTED) 20] delete /test_shao
- Node not empty: /test_shao
5. 设置或者修改节点内容
- set [-s] [-v version] path data
- set /test_shao/test_node_xx "修改后的内容"
- #如果节点本身没有内容,则给该节点添加相关内容,如果已有内容,则把之前的内容覆盖为当前内容
-
- #set 添加多行数据
- 如果 set 多行数据,数据使用双引号
6.ACL 权限控制
- 6.1 ACL特性
- 1)ZooKeeper 的权限控制是基于每个znode节点的,需要对每个节点设置权限
- 2)每个 znode 支持设置多种权限控制方案和多个权限
- 3)子节点不会继承父节点的权限,客户端无权访问某节点,但可能可以访问它的子节点
-
- 6.2 查看节点 ACL
- getAcl /test_shao/test_node_xx
- 'world,'anyone
- : cdrwa
- #这是所有节点的默认acl,表示所有连接到zookeeper 的客户端都能对该节点进行cdrwa操作(即拥有所有权限)
-
- 6.3 设置 world 权限模式
- 1)添加或者修改 world
- setAcl /test_shao/test_node_xx world:anyone:cdra
- [zk: localhost:2181(CONNECTED) 22] getAcl /test_shao/test_node_xx
- 'world,'anyone
- : cdra
- #当前设置会覆盖节点之前的权限(注意不要轻易去掉节点的a权限,否则所有人都无法对其进行权限设置)
-
- 2)取消 world 权限模式的所有权限
- setAcl /test_shao/test_node_xx world:anyone:
-
- 6.4 设置 ip 权限模式
- 1)指定ip地址
- [zk: localhost:2181(CONNECTED) 8] getAcl /test_shao/test_node_xx
- 'world,'anyone
- : cdrwa
- [zk: localhost:2181(CONNECTED) 9] setAcl /test_shao/test_node_xx ip:127.0.0.1:cdrwa
- [zk: localhost:2181(CONNECTED) 10] getAcl /test_shao/test_node_xx
- 'ip,'127.0.0.1
- : cdrwa
- ##设置了ip权限后,原来默认的 world 权限没有了
-
- 2)指定ip地址段
- setAcl /test_shao/test_node_xx ip:192.168.1.0/16:cdrwa
-
- 6.4 设置 auth 权限模式

7.查询节点内容及状态信息
- 1)查询节点内容
- get /test_shao/test_node_xx
- 修改后的内容
-
- 2)查询节点状态信息
- stat /test_shao/test_node_xx
-
- 2)查询节点内容及状态信息
- get -s /test_shao/test_node_xx
- 修改后的内容
- cZxid = 0x6 ##创建节点的事务 zxid
- ctime = Tue Jul 26 09:49:14 CST 2022 ##znode 被创建的毫秒数(从 1970 年开始)
- mZxid = 0x9 ##znode 最后更新的事务 zxid
- mtime = Tue Jul 26 09:57:36 CST 2022 ##znode 最后修改的毫秒数(从 1970 年开始)
- pZxid = 0x6 ##znode 最后更新的子节点 zxid
- cversion = 0 ##znode 子节点变化号(增删子节点会递增),znode 子节点修改次数
- dataVersion = 1 ##znode 数据变化号
- aclVersion = 0 ##znode 访问控制列表的变化号
- ephemeralOwner = 0x0 ##如果是临时节点,这个是 znode 拥有者的 session id。如果不是临时节点则是 0
- dataLength = 18 ##znode 的数据长度
- numChildren = 0 ##znode 子节点数量

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。