zookeeper之客户端命令行操作

210 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第27天,点击查看活动详情 .

3.2 客户端命令行操作

3.2.1 命令行语法

命令基本语法功能描述
help显示所有操作命令
ls path使用 ls 命令来查看当前znode的子节点 [可监听]
-w监听子节点变化
-s附加次级信息
create普通创建
-s含有序列
-e临时(重启或者超时消失)
get path获得节点的值 [可监听]
-w监听节点内容变化
-s附加次级信息
set设置节点的具体值
stat查看节点状态
delete删除节点
deleteall递归删除节点

1)启动客户端

[summer@hadoop102 zookeeper-3.5.7]$ bin/zkCli.sh

在这里插入图片描述

[summer@hadoop102 zookeeper-3.5.7]$ bin/zkCli.sh -server hadoop102:2181

在这里插入图片描述这个就是后面加上-server hadoop102:2181的结果效果,把客户端改成了hadoop102,localhost是本地的客户端

2)显示所有操作命令

[zk: hadoop102:2181(CONNECTED) 2] help

3.2.2 znode节点数据信息

1)查看当前znode中所包含的内容

[zk: hadoop102:2181(CONNECTED) 1] ls /
[zookeeper]

2)查看当前节点详细数据

[zk: hadoop102:2181(CONNECTED) 3] ls -s /
[zookeeper]cZxid = 0x0
ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x0
cversion = -1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 0
numChildren = 1

(1)czxid:创建节点的事务zxid

每次修改ZooKeeper状态都会产生一个ZooKeeper事务ID。事务ID是ZooKeeper中所有修改总的次序。每次修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。

(2)ctime:znode被创建的毫秒数(从1970年开始)

(3)mzxid:znode最后更新的事务zxid

(4)mtime:znode最后修改的毫秒数(从1970年开始)

(5)pZxid:znode最后更新的子节点zxid

(6)cversion:znode子节点变化号,znode子节点修改次数

(7)dataversion:znode数据变化号

(8)aclVersion:znode访问控制列表的变化号

(9)ephemeralOwner:如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。

(10)dataLength:znode的数据长度

(11)numChildren:znode子节点数量

(1)当ZooKeeper集群中的一台服务器出现以下两种情况之一时,就会开始进入Leader选举: • 服务器初始化启动。 • 服务器运行期间无法和Leader保持连接。 (2)而当一台机器进入Leader选举流程时,当前集群也可能会处于以下两种状态: • 集群中本来就已经存在一个Leader。 对于第一种已经存在Leader的情况,机器试图去选举Leader时,会被告知当前服务器的Leader信息,对于该机器来说,仅仅需要和Leader机器建立连接,并进行状态同步即可。 • 集群中确实不存在Leader。 假设ZooKeeper由5台服务器组成,SID分别为1、2、3、4、5,ZXID分别为8、8、8、7、7,并且此时SID为3的服务器是Leader。某一时刻,3和5服务器出现故障,因此开始进行Leader选举。 SID为1、2、4的机器投票情况: