Zookeeper之zkCli.sh客户端的使用

教程目录

0x00 教程内容
  1. zkCli.sh的启动与帮助
  2. zkCli.sh客户端的使用

Zookeeper的安装请参考教程:D003 复制粘贴玩大数据之安装与配置Zookeeper集群

PS:Zookeeper的zkCli.sh的命令与Linux的命令类似,上手也非常简单。

0x01 zkCli.sh的启动与帮助
1. 启动

a. 在三台节点上均执行
zkServer.sh start
b. 启动master上执行
zkCli.sh -server master:2181
Zookeeper之zkCli.sh客户端的使用

2. 查看帮助命令

a. 查看命令具体操作
h
Zookeeper之zkCli.sh客户端的使用

0x02 zkCli.sh客户端的使用
1. zkCli.sh基础操作

a. 查看根路径有哪些节点
ls /
Zookeeper之zkCli.sh客户端的使用
b. 创建一个节点
create /shaonaiyi man
Zookeeper之zkCli.sh客户端的使用
c. 获取节点/shaonaiyi的数据值
get /shaonaiyi
Zookeeper之zkCli.sh客户端的使用
讲解:

cZxid 创建该节点的事物ID
ctime 创建该节点的时间
mZxid 更新该节点的事物ID
mtime 更新该节点的时间
pZxid 操作当前节点的子节点列表的事物ID(这种操作包含增加子节点,删除子节点)
cversion 当前节点的子节点版本号
dataVersion 当前节点的数据版本号
aclVersion 当前节点的acl权限版本号
ephemeralowner 当前节点的如果是临时节点,该属性是临时节点的事物ID,0x0表示非临时节点
dataLength 当前节点的d的数据长度
numchildren 当前节点的子节点个数

d. 给节点/shaonaiyi设置值
set /shaonaiyi goodman
再获取节点/shaonaiyi的数据值
get /shaonaiyi
Zookeeper之zkCli.sh客户端的使用
e. 创建三个/shaonaiyi节点的子节点(shao1shao2shao3
create /shaonaiyi/shao1 “shao1”
create /shaonaiyi/shao2 “”
create /shaonaiyi/shao3 “”
Zookeeper之zkCli.sh客户端的使用
f. 创建一个不存在节点的子节点,会报错
create /shaonaiyi1/shao1 “”
Zookeeper之zkCli.sh客户端的使用
此时可以一步一步来,先创建/shaonaiyi1
create /shaonaiyi1 “”
再创建/shaonaiyi1/shao1
create /shaonaiyi1/shao1 “”
Zookeeper之zkCli.sh客户端的使用
g. 删除节点
delete /shaonaiyi1/shao1
发现里面已经没有shao1节点了
ls /shaonaiyi1
Zookeeper之zkCli.sh客户端的使用
再将shao1子节点创建回来
create /shaonaiyi1/shao1 “”
删除shaonaiyi1节点,发现无法删除:
delete /shaonaiyi1
Zookeeper之zkCli.sh客户端的使用
此时应该递归存在子节点的父节点:
rmr /shaonaiyi1
此时查看/shaonaiyi1也已经不在了
ls /
Zookeeper之zkCli.sh客户端的使用
i. 退出zkCli.sh
quit

2. zkCli.sh进阶操作

a. 创建临时节点(-e)
create -e /shaonaiyi/e-shao “”
查看节点:
ls /shaonaiyi
Zookeeper之zkCli.sh客户端的使用
b. 创建顺序节点(-s)
create -s /shaonaiyi/s-shao “”
查看节点:
ls /shaonaiyi
发现名字并不是s-shao,而是自动加上了后缀。
Zookeeper之zkCli.sh客户端的使用
此时,再创建几个同名的节点
create -s /shaonaiyi/s-shao “”
create -s /shaonaiyi/s-shao “”
create -s /shaonaiyi/s-shao “”
再查看一下,发现节点后缀自动累加:
ls /shaonaiyi
Zookeeper之zkCli.sh客户端的使用
c. 创建临时顺序节点 (-e -s)
create -e -s /shaonaiyi/es-shao “”
ls /shaonaiyi
Zookeeper之zkCli.sh客户端的使用
d. 退出客户端,再重新登录,发现创建的临时节点已经不存在(刚刚的临时节点有e-shaoes-shao0000000009
ls /shaonaiyi
Zookeeper之zkCli.sh客户端的使用

0xFF 总结
  1. 思考1:连接时尝试只连接slave1或者slave2,看是否一样可以对整个Zookeeper进行操作?
  2. 思考2:启动Zookeeper时,尝试按下面顺序启动,查看每次启动集群的角色情况,再尝试一遍,观察每次执行的结果一不一样:
    启动与查看角色语句如下:
    zkServer.sh start
    zkServer.sh status
    情形一:master、slave1、slave2
    情形二:slave1、master、slave2
    情形三:slave2、slave1、master

结果如下,请思考选举出来的leader有什么原则:
情形一:
Zookeeper之zkCli.sh客户端的使用
情形二:
Zookeeper之zkCli.sh客户端的使用
情形三:
Zookeeper之zkCli.sh客户端的使用


作者简介:邵奈一
全栈工程师、市场洞察者、专栏编辑
| 公众号 | 微信 | 微博 | CSDN | 简书 |

福利:
邵奈一的技术博客导航
邵奈一 原创不易,如转载请标明出处。


上一篇:PHP-如何从路由器制作漂亮的重写URL


下一篇:php-通过mod-rewrite传递变量类型