0
点赞
收藏
分享

微信扫一扫

Zookeeper之zkCli.sh客户端的使用



教程目录


  • ​​0x00 教程内容​​
  • ​​0x01 zkCli.sh的启动与帮助​​

  • ​​1. 启动​​
  • ​​2. 查看帮助命令​​

  • ​​0x02 zkCli.sh客户端的使用​​

  • ​​1. zkCli.sh基础操作​​
  • ​​2. zkCli.sh进阶操作​​

  • ​​0xFF 总结​​


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客户端的使用_子节点_02

0x02 zkCli.sh客户端的使用

1. zkCli.sh基础操作

a. 查看根路径有哪些节点

​ls /​

Zookeeper之zkCli.sh客户端的使用_zookeeper_03

b. 创建一个节点

​create /shaonaiyi man​

Zookeeper之zkCli.sh客户端的使用_大数据_04

c. 获取节点​​/shaonaiyi​​的数据值

​get /shaonaiyi​

Zookeeper之zkCli.sh客户端的使用_bigdata_05

讲解:

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客户端的使用_bigdata_06

e. 创建三个​​/shaonaiyi​​节点的子节点(​​shao1​​、​​shao2​​、​​shao3​​)

​create /shaonaiyi/shao1 “shao1”​

​create /shaonaiyi/shao2 “”​

​create /shaonaiyi/shao3 “”​

Zookeeper之zkCli.sh客户端的使用_大数据_07

f. 创建一个不存在节点的子节点,会报错

​create /shaonaiyi1/shao1 “”​

Zookeeper之zkCli.sh客户端的使用_zookeeper_08

此时可以一步一步来,先创建/shaonaiyi1

​create /shaonaiyi1 “”​

再创建/shaonaiyi1/shao1

​create /shaonaiyi1/shao1 “”​

Zookeeper之zkCli.sh客户端的使用_zookeeper_09

g. 删除节点

​delete /shaonaiyi1/shao1​

发现里面已经没有​​shao1​​节点了

​ls /shaonaiyi1​

Zookeeper之zkCli.sh客户端的使用_大数据_10

再将​​shao1​​子节点创建回来

​create /shaonaiyi1/shao1 “”​

删除​​shaonaiyi1​​节点,发现无法删除:

​delete /shaonaiyi1​

Zookeeper之zkCli.sh客户端的使用_zookeeper_11

此时应该递归存在子节点的父节点:

​rmr /shaonaiyi1​

此时查看​​/shaonaiyi1​​也已经不在了

​ls /​

Zookeeper之zkCli.sh客户端的使用_bigdata_12

i. 退出zkCli.sh

​quit​

2. zkCli.sh进阶操作

a. 创建临时节点(-e)

​create -e /shaonaiyi/e-shao “”​

查看节点:

​ls /shaonaiyi​

Zookeeper之zkCli.sh客户端的使用_客户端_13

b. 创建顺序节点(-s)

​create -s /shaonaiyi/s-shao “”​

查看节点:

​ls /shaonaiyi​

发现名字并不是​​s-shao​​,而是自动加上了后缀。

Zookeeper之zkCli.sh客户端的使用_子节点_14

此时,再创建几个同名的节点

​create -s /shaonaiyi/s-shao “”​

​create -s /shaonaiyi/s-shao “”​

​create -s /shaonaiyi/s-shao “”​

再查看一下,发现节点后缀自动累加:

​ls /shaonaiyi​

Zookeeper之zkCli.sh客户端的使用_bigdata_15

c. 创建临时顺序节点 (-e -s)

​create -e -s /shaonaiyi/es-shao “”​

​ls /shaonaiyi​

Zookeeper之zkCli.sh客户端的使用_bigdata_16

d. 退出客户端,再重新登录,发现创建的临时节点已经不存在(刚刚的临时节点有​​e-shao​​、​​es-shao0000000009​​)

​ls /shaonaiyi​

Zookeeper之zkCli.sh客户端的使用_zookeeper_17

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_18

情形二:

Zookeeper之zkCli.sh客户端的使用_子节点_19

情形三:

Zookeeper之zkCli.sh客户端的使用_zookeeper_20

全栈工程师、市场洞察者、专栏编辑

| ​​公众号​​​ | ​​微信​​​ | ​​微博​​ | ​​简书​​ |

福利:

​​邵奈一的技术博客导航​​

​​邵奈一​​ 原创不易,如转载请标明出处。


举报

相关推荐

0 条评论