# zookeeper学习笔记 **Repository Path**: zy0912/zookeeper-learning-notes ## Basic Information - **Project Name**: zookeeper学习笔记 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-13 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 概念 Zookeeper是一个分布式、开源的分布式应用程序的协调服务; Zookeeper提供的主要功能包括: 1. 配置管理-配置中心 2. 分布式锁 1. 集群管理-注册中心 ## 安装 ### 1.1 下载安装 **1、环境准备** ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。 **2、上传** 将下载的ZooKeeper放到/opt/ZooKeeper目录下 ```shell # 下载zookeeper wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz #打开 opt目录 cd /opt #创建zooKeeper目录 mkdir zookeeper #将zookeeper安装包移动到 /opt/zooKeeper mv apache-zookeeper-3.7.1-bin.tar.gz /opt/zookeeper/ ``` **3、解压** 将tar包解压到/opt/zookeeper目录下 ```shell tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz ``` ### 1.2 配置启动 **1、配置zoo.cfg** 进入到conf目录拷贝一个zoo_sample.cfg并完成配置 ```shell #进入到conf目录 cd /opt/zooKeeper/apache-zooKeeper-3.7.1-bin/conf/ #拷贝 cp zoo_sample.cfg zoo.cfg ``` 修改zoo.cfg ```shell #打开目录 cd /opt/zooKeeper/ #创建zooKeeper存储目录 mkdir zkdata #修改zoo.cfg vim /opt/zooKeeper/apache-zooKeeper-3.7.1-bin/conf/zoo.cfg ``` ![1577548250377](images/1577548250377.png) 修改存储目录:dataDir=/opt/zookeeper/zkdata **2、启动ZooKeeper** ```shell cd /opt/zookeeper/apache-zookeeper-3.7.1-bin/bin/ #启动 ./zkServer.sh start ``` ![1577548052037](images/1577548052037.png) 看到上图表示ZooKeeper成功启动 **3、查看ZooKeeper状态** ```shell ./zkServer.sh status ``` zookeeper启动成功。standalone代表zk没有搭建集群,现在是单节点 ![1577548175232](images/1577548175232.png) zookeeper没有启动 ![1577548112773](images/1577548112773.png) ## 命令操作 ### 数据模型 Zookeeper 是一个树形目录服务,其数据模型和Unix的目录树很类似,拥有一个层次化结构; 这里面的每一个节点都被称为:ZNode,每个节点上都会保存自己的数据和节点信息; 节点可以拥有子节点,同时也允许少量(1MB)数据存储在该节点下; 节点可以分为四大类: ​ PERSISTENT 持久化节点 ​ EPHEMERAL 临时节点 -e ​ PERSISTENT_SEQUENTIAL 持久化顺序节点 -s ​ EPHEMERAL_SEQUENTIAL 临时顺序节点 -es ​ linux 结构: ![image-20230224145913733](images/image-20230224145913733.png) ​ zookeeper 结构: ![image-20230224145929079](images/image-20230224145929079.png) ### 服务端常用命令 ```shell # 启动 ./zkServer.sh start # 查看状态 ./zkServer.sh status # 停止 ./zkServer.sh stop # 重启 ./zkServer.sh restart ``` ### 客户端常用命令 ```shell # 连接 ./zkCli.sh -server localhost:2181 # 查看节点 ls / # 创建节点 (不写数据默认为空) create /app1 # 创建节点并写入数据 create /app1 test # 设置节点数据 set /app1 test # 查看数据 get /app1 # 删除节点 delete /app1 # 递归删除节点 deleteall /app1 ```