Zookeeper 数据节点介绍和命令管理

2019-09-18 0 By admin

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。

一、Zookeeper Znode 数据节点

在Zookeeper中,znode是一个类似Unix文件系统路径(目录)的节点,可以往这个节点存储或获取数据;也可以创建和删除znode。

1.1、znode 有四种类型(Flag)

1、persistent(持久化目录节点)
客户端与zookeeper断开连接后,该节点依旧存在
2、 persistent_sequential(持久化顺序编号目录节点)
客户端与zookeeper断开连接后,该节点依旧存在,只是zookeeper给该节点名称进行顺序编号
3、ephemeral(临时目录节点)
客户端与zookeeper断开连接后,该节点被删除
4、ephemeral_sequential(临时顺序编号目录节点)
客户端与zookeeper断开连接后,该节点被删除,只是zookeeper给该节点名称进行顺序编号

二、Zookeeper 管理命令

Zookeeper 服务安装完成后,可以在 bin 目录中看到一个 zCli.sh 系统自带管理客户端。
bin/zkCli.sh -r -timeout 2000 -server 127.0.0.1:2181

  1. -r : 只读模式,当Zookeeper 集群状态异常时,可以登陆排查
  2. -timeout : 以ms作为统计单位

2.1、创建节点znode

create [-s] [-e] path data acl

  1. -s: sequence 模式, 创建后会生成原节点+序列号的节点,再次执行相同命令会产生序列号加1的节点。
  2. -e: 临时节点与数据, 关闭连接后数据就会被删除。
  3. path : 节点路径;需要确保上级节点是存在的。
  4. data : 节点中存放的数据;需要设置。
  5. acl : 可以省略。

2.2、删除节点

delete path [version] #节点下面有节点,不能删
rmr path #递归删除该节点 与 该节点的子节点。

2.3、修改节点数据

set path data [version]

2.4、查看节点znode信息

stat path [watch]
get path [watch]
ls path [watch]
ls2 path [watch]
#相当于ls和stat的结合

2.5、设置配额

setquota -n|-b val path
zookeeper 的配额机制可以设置两种配额。

  1. -n 设置子节点的数量,包括其自身。
  2. -b 节点中数据的长度。

对于超出配额,系统不会导致插入或者修改不成功,但是会在 zookeeper.out 中生成错误日志。

2.6、查询配额

listquota path

2.7、删除配额

delquota [-n|-b] path
注意配额一旦设置完成,只能删除了重新设置,setquota 不能重置配额。

2.8、访问控制列表

setAcl path acl
getAcl path

2.9、其他管理命令

history
printwatches on|off
sync path
addauth scheme auth
quit
close
connect host:port
#/连接到一台远程的zk上
redo cmdno #重新执行某条指令