什么是 Zookeeper
Zookeeper 是一个分布式协调框架,是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
简单来说 Zookeeper = 文件系统 + 监听通知机制
安装 Zookeeper
- 下载并解压
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
- 复制一份配置文件,并重命名为
zoo
cp conf/zoo_sample.cfg conf/zoo.cfg
- 在
bin
目录下启动 zk 服务器
./zkServer.sh start
- 在
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