什么是 Zookeeper

Zookeeper 是一个分布式协调框架,是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

简单来说 Zookeeper = 文件系统 + 监听通知机制

安装 Zookeeper

  1. 下载并解压
cd /usr/local
 
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
 
tar xvf apache-zookeeper-3.6.3-bin.tar.gz
  1. 复制一份配置文件,并重命名为 zoo
cp conf/zoo_sample.cfg conf/zoo.cfg
  1. bin 目录下启动 zk 服务器
./zkServer.sh start
  1. bin 目录下运行客户端
./zkCli.sh

基本操作

  • 查看当前 zk 中包含的内容
ls /
  • 新建一个 znode
create /zk_test myData

  • 获取节点的值
get /zk_test
  • 设置节点的值
get /zk_test 123
  • 删除节点
delete /zk_test

客户端常用命令

连接其他的 ZooKeeper 服务

connect host:port

列表路径下的资源

ls /path

创建持久化节点

create /path data

创建持久化顺序节点

create -s /path data

创建临时节点

create -e /path data

创建临时顺序节点

create -e -s /path data

查看节点状态

stat /test

Note

cZxid = 0xd # 创建节点时的事务 ID
ctime = Fri Jan 07 09:32:40 CST 2022 # 节点被创建的时间
mZxid = 0x1f # 当前节点携带数据最后一次修改的事务 ID。
mtime = Fri Jan 07 09:35:30 CST 2022 # 节点最后一次被修改的时间
pZxid = 0x21 # 子节点列表最后一次修改的事务 ID。
cversion = 1 # 节点版本号,当节点的子节点列表发生变化时,版本变更
dataVersion = 2 # 数据版本号,当节点携带数据发生变化时,版本变更
aclVersion = 0 # 节点最后一次被修改的时间
ephemeralOwner = 0x0 # 如果此节点为临时节点,那么它的值为这个节点拥有者的会话ID;否则,它的值为0x0
dataLength = 3 # 节点携带数据长度
numChildren = 1 # 子节点数量

查看指定节点的数据

get /path

设置指定节点的数据

set /path data

删除指定节点

此命令不能删除有子节点的节点

delete /path

删除指定结点,包括子节点

旧版

rmr /path

新版

deleteall /path

退出控制台

quit

Reference