ZooKeeper介绍
- ZooKeeper(动物园管理员)是一个分布式的、开源的分布式应用程序的协调服务框架,简称zk。
- ZooKeeper是Apache Hadoop 项目下的一个子项目,是一个树形目录服务。
ZooKeeper的主要功能
- 配置管理
-
分布式锁
-
集群管理
Zookeeper数据模型
ZooKeeper是一个树形目录服务,每一个节点都被称为ZNode,每个节点
上都会保存自己的数据和节点信息。 节点可以拥有子节点,同时也允许少量
(1MB)数据存储在该节点上。
ZNode节点类型:
- PERSISTENT 持久化节点
- EPHEMERAL 临时节点 :-e
- PERSISTENT_SEQUENTIAL 持久化顺序节点 :-s
- EPHEMERAL_SEQUENTIAL 临时顺序节点 :-es
下载安装
1、环境准备
ZooKeeper服务器是用Java创建的,它运行在JVM之上。需要安装JDK 7或更高版本。
2、上传
将下载的ZooKeeper放到/export/software目录下
3、解压
进入/export/software目录下,将tar包解压到/export/servers目录下
tar -xzvf apache-ZooKeeper-3.5.6-bin.tar.gz -C /export/servers
4、添加环境变量
在/etc/profile全局配置文件中,添加:
export ZK_HOME=/export/servers/apache-zookeeper-3.5.6-bin
export PATH=$PATH:$ZK_HOME/bin
配置启动
1、配置zoo.cfg
进入到conf目录拷贝一个zoo_sample.cfg并完成配置
#进入到conf目录
cd /export/servers/apache-zookeeper-3.5.6-bin/conf
#拷贝
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg
#进入目录
cd /export/data
#创建zooKeeper存储目录
mkdir zkdata
#修改zoo.cfg
vi /export/servers/apache-zookeeper-3.5.6-bin/conf/zoo.cfg
``
修改存储目录:dataDir=/export/data/zkdata
**2、启动ZooKeeper**
```shell
cd /export/servers/apache-zookeeper-3.5.6-bin/bin
#启动
./zkServer.sh start
3、查看ZooKeeper状态
./zkServer.sh status
zookeeper启动成功。standalone代表zk没有搭建集群,现在是单节点
ZooKeeper命令行操作
服务端常用命令
-
启动 ZooKeeper 服务:
er.sh start
-
查看 ZooKeeper 服务状态:
./zkServer.sh status
-
停止 ZooKeeper 服务:
./zkServer.sh stop
-
重启 ZooKeeper 服务:
./zkServer.sh restart
Zookeeper客户端常用命令
-
连接ZooKeeper服务端:
./zkCli.sh –server ip:port
-
断开连接:
quit
-
显示指定目录下节点
ls 目录
-
创建持久化节点:
create /节点path # 创建持久化节点但不设置值 create /节点path value # 创建持久化节点并且设置值
-
获取节点值:
get /节点path
-
设置节点值:
set /节点path value
-
删除单个节点:
delete /节点path
-
删除包含子节点的节点:
deleteall /节点path
-
创建临时节点:
create -e /节点path value
-
创建顺序节点:
create -s /节点path value
-
查询节点详细信息:
ls -s /节点path
小结
通过安装和配置Apache Zookeeper,我们不仅成功搭建了一个分布式协调服务框架,还深入理解了其在维护系统一致性、提供分布式锁服务以及作为高可用性解决方案中的核心作用。通过实践操作,我们学习了Zookeeper的基本命令和API,掌握了如何使用它进行集群管理、状态同步和配置维护。此外,通过监控和调优Zookeeper实例,我们增强了对高性能分布式系统运作机制的认识,提升了解决复杂分布式问题的能力。这一系列的学习和操作经历,让我们对Zookeeper的功能和应用场景有了更加全面和深刻的理解。