大数据学习
bigdata learning
Toggle navigation
大数据学习
主页
openGauss数据库
Flume
MongoDB
Hadoop
数据库实验
Kafka
Zookeeper
Hbase
Manual
Spark
Neo4j
InfluxDB
RabbitMQ
Flink
About Me
归档
标签
05-Zookeeper客户端基础命令
Zookeeper
2022-10-17 19:47:21
30
0
0
bigdata
Zookeeper
# 一、[zookeeper](https://so.csdn.net/so/search?q=zookeeper&spm=1001.2101.3001.7020) 客户端简介 ZooKeeper 提供了一个非常简单的[命令行](https://so.csdn.net/so/search?q=%E5%91%BD%E4%BB%A4%E8%A1%8C&spm=1001.2101.3001.7020)客户端 zkCli,它在 ZooKeeper 安装目录的 bin 目录下。输入./zkCli.sh 命令默认连接本地 127.0.0.1:2181 节点,如果我们需要连接远程节点可以使用./zkCli.sh -server ip:2181 方式进行连接。连接过程中会输出一大堆信息。当连接成功后,将进入 ZooKeeper 的交互式模式。博文实验环境: * 操作系统:centos7.6 * zookeeper 版本:3.6.3 # 二、zookeeper 常用命令示例 ## 0、连接 zookeeper server ```bash [wuhs@s143 bin]$ ./zkCli.sh -server 192.168.0.142:2181 Connecting to 192.168.0.142:2181 2022-03-02 22:26:26,705 [myid:] - INFO [main:Environment@98] - Client environment:zookeeper.version= … mplete on server s142/192.168.0.142:2181, session id = 0x100002542a90003, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null ``` ## 1、获取命令帮助 早先版本是通过 help 命令获取命令帮助,新版本会提示找不到 help 命令,但是输出结果还是会显示 zookeeper 客户端下支持的命令。  ## 2、查看软件版本 ```bash [zk: localhost:2181(CONNECTED) 1] version ZooKeeper CLI version: 3.7.1-a2fb57c55f8e59cdd76c34b357ad5181df1258d5, built on 2022-05-07 06:45 UTC ``` ## 3、连接一个远程节点 ``` [zk: localhost:2181(CONNECTED) 2] connect 192.168.0.143:2181 ``` ## 4、关闭连接 ```bash [zk: 192.168.0.143:2181(CONNECTED) 3] close WATCHER:: WatchedEvent state:Closed type:None path:null 2022-03-03 01:29:57,127 [myid:] - INFO [main:ZooKeeper@1619] - Session: 0x20000253ae20003 closed 2022-03-03 01:29:57,127 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@578] - EventThread shut down for session: 0x20000253ae20003 ``` ## 5、创建一个 znode 命令语法:create [-s] [-e] [-c] [-t ttl] path [data] [acl] * -s:创建的是带序列号的节点,序列号用 0 填充节点路径。 * -e:创建的是临时节点。 * -c:创建的是容器节点 * path:znode 的路径,ZooKeeper 中没有相对路径,所有路径都必须以’/'开头。 * data:znode 携带的数据。 * acl:这个节点的 ACL。 ```bash #创建一个永久节点 [zk: localhost:2181(CONNECTED) 3] create /zk_test Created /zk_test #创建一个临时节点 [zk: localhost:2181(CONNECTED) 4] create -e /ephemeral_node Created /ephemeral_node ``` **自动创建顺序节点** 实例: ```bash [zk: localhost:2181(CONNECTED) 7] create -s -e /nbu 0 Created /nbu0000000001 [zk: localhost:2181(CONNECTED) 8] create -s -e /nbu 0 Created /nbu0000000002 [zk: localhost:2181(CONNECTED) 9] create -s -e /nbu 0 Created /nbu0000000003 [zk: localhost:2181(CONNECTED) 10] create -s -e /nbu 0 Created /nbu0000000004 [zk: localhost:2181(CONNECTED) 11] create -s -e /nbu 0 Created /nbu0000000005 ```  ## 6、删除 znode 节点 ```bash #删除节点前要求节点目录为空,不存在子节点 [zk: localhost:2181(CONNECTED) 5] delete /ephemeral_node #如果要删除整个节点及子节点可以使用 deleteall [zk: localhost:2181(CONNECTED) 6] deleteall /config # 新版本zookeeper可以通过 deleteall 命令递归删除 [zk: localhost:2181(CONNECTED) 12] deleteall /nbu [zk: localhost:2181(CONNECTED) 13] ls /nbu Node does not exist: /nbu ```  ## 7、指定路径下的配额管理 配额管理主要有两个参数 * -n 限制子节点的数量(包括自身) * -b 限制一条路径的字节(数据长度) ### 查看配额 ```bash [zk: localhost:2181(CONNECTED) 18] listquota /config/topics absolute path is /zookeeper/quota/config/topics/zookeeper_limits Output quota for /config/topics count=1,bytes=-1=;byteHardLimit=-1;countHardLimit=-1 Output stat for /config/topics count=1,bytes=0 ``` ### 设置配额 ```bash [zk: localhost:2181(CONNECTED) 19] setquota -n 2 /config/topics ``` ### 删除配额 ```bash [zk: localhost:2181(CONNECTED) 20] delquota /config/topics [zk: localhost:2181(CONNECTED) 21] listquota /config/topics absolute path is /zookeeper/quota/config/topics/zookeeper_limits quota for /config/topics does not exist. ``` ## 8、显示一个节点的状态 ```bash [zk: localhost:2181(CONNECTED) 22] stat /config/topics cZxid = 0x13 ctime = Tue Oct 18 22:17:36 CST 2022 mZxid = 0x13 mtime = Tue Oct 18 22:17:36 CST 2022 pZxid = 0x13 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 0 ``` ## 9、查看路径子节点 命令语法:ls [-s] [-w] [-R] path * -s 同时显示 stat 信息 * -w 只显示子节点信息,默认选项 * -R 递归显示 ```bash [zk: localhost:2181(CONNECTED) 23] ls -R / / /config /nbu /zk_test /zookeeper /config/topics /zookeeper/config /zookeeper/quota ``` ## 10、获取指定路径下的数据 ```bash [zk: localhost:2181(CONNECTED) 25] get /nbu 1 ```  ## 11、获取子节点数量 ```bash [zk: localhost:2181(CONNECTED) 2] getAllChildrenNumber /zookeeper 2 ``` ## 12、获取会话创建的临时节点 ```bash [zk: localhost:2181(CONNECTED) 0] create -e /config/abc Created /config/abc [zk: localhost:2181(CONNECTED) 1] getEphemerals /config [/config/abc] ``` ## 13、设置或者更新路径数据 ```bash [zk: localhost:2181(CONNECTED) 6] create /nbu/child0 Created /nbu/child0 [zk: localhost:2181(CONNECTED) 7] set /nbu/child0 "this is a test" [zk: localhost:2181(CONNECTED) 8] get /nbu/child0 this is a test ``` ## 14、设置 ACL <table><thead><tr><th align="left">ACL 权限</th><th align="left">ACL 简写</th><th align="left">允许的操作</th></tr></thead><tbody><tr><td align="left">CREATE</td><td align="left">c</td><td align="left">创建子节点</td></tr><tr><td align="left">READ</td><td align="left">r</td><td align="left">获取节点的数据和它的子节点</td></tr><tr><td align="left">WRITE</td><td align="left">w</td><td align="left">设置节点的数据</td></tr><tr><td align="left">DELETE</td><td align="left">d</td><td align="left">删除子节点 (仅下一级节点)</td></tr><tr><td align="left">ADMIN</td><td align="left">a</td><td align="left">设置 ACL 权限</td></tr></tbody></table> ZooKeeper 内置了一些权限控制方案,可以用以下方案为每个节点设置权限: <table><thead><tr><th align="left">方案</th><th align="left">描述</th></tr></thead><tbody><tr><td align="left">world</td><td align="left">只有一个用户:anyone,代表所有人(默认)</td></tr><tr><td align="left">ip</td><td align="left">使用 IP 地址认证</td></tr><tr><td align="left">auth</td><td align="left">使用已添加认证的用户认证</td></tr><tr><td align="left">digest</td><td align="left">使用 “用户名: 密码” 方式认证</td></tr></tbody></table> ## 15、获取 ACL ```bash [zk: localhost:2181(CONNECTED) 9] getAcl /config 'world,'anyone : cdrwa ``` ## 16、同步数据集群间数据 ```bash [zk: localhost:2181(CONNECTED) 11] sync / Sync is OK ``` ## 17、查看命令执行历史 ```bash [zk: localhost:2181(CONNECTED) 12] history 2 - set /config/topics/test “this is a test” 3 - create /config/topics/test 4 - set /config/topics/test “this is a test” 5 - get /config/topics/test 6 - create /nbu/child0 7 - set /nbu/child0 "this is a test" 8 - get /nbu/child0 9 - getAcl /config 10 - ls /config 11 - sync / 12 - history ``` ## 18、退出客户端 ```bash [zk: localhost:2181(CONNECTED) 13] quit WATCHER:: WatchedEvent state:Closed type:None path:null 2022-10-18 22:28:17,908 [myid:] - INFO [main:ZooKeeper@1288] - Session: 0x1000002b62c0005 closed 2022-10-18 22:28:17,908 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@568] - EventThread shut down for session: 0x1000002b62c0005 2022-10-18 22:28:17,909 [myid:] - INFO [main:ServiceUtils@45] - Exiting JVM with code 0 ``` ## 19、更多信息查看 更多命令帮助信息我们可以查阅官网帮助文档,zookeeper 3.6.3 版本命令帮助文件见链接: https://zookeeper.apache.org/doc/r3.6.3/zookeeperCLI.html
上一篇:
05-Spark-Scala编程
下一篇:
06 openGauss数据库维护管理指导手册
文档导航