一、zookeeper的简介

1. 发展历史

官网地址:https://zookeeper.apache.org/

Zookeeper是一个开源的分布式协调服务,由雅虎公司开发并于2010年加入Apache软件基金会。Zookeeper的名称取自于动物园的管理员“zookeeper”,因为它的设计目标是用来管理和协调分布式系统中的进程。

Zookeeper的由来可以追溯到雅虎公司在2007年提出的一个名为"Chubby"的分布式锁服务。Chubby是Google公司开发的一个分布式锁服务,被广泛用于协调和管理Google内部的分布式系统。雅虎公司希望能够开发自己的分布式锁服务,因此在Chubby的基础上开发了一个类似的系统,取名为Zookeeper。

Zookeeper最初的设计目标是用来解决分布式系统中的一致性问题。它提供了一种简单而可靠的分布式协调服务,可以用于实现分布式锁、选举、命名服务等功能。随着时间的推移,Zookeeper的功能不断增强,成为一个功能强大的分布式协调服务。它的设计理念和实现方式受到了广泛的赞誉,成为了分布式系统领域的重要工具之一。

2. 应用场景

zookeeper是一个分布式数据一致性解决方案,致力于为分布式应用提供一个高性能,高可用,且具有严格顺序访问控制能力的分布式协调存储服务。

zookeeper适用于存储和协同相关的关键数据,不适合用于存储大数据量存储。

二、单机部署

1. 安装JDK并配置环境变量

# 创建软件目录
mkdir -pv /dadong/softwares/

# 解压文件到softwares中
tar xf jdk-8u201-linux-x64.tar.gz -C /oldboy/softwares/

# 建立链接
ln -sv /oldboy/softwares/jdk1.8.0_201/ /oldboy/softwares/jdk

# 配置环境变量
vim /etc/profile.d/jdk.sh

JAVA_HOME=/dadong/softwares/jdk
PATH=$PATH:$JAVA_HOME/bin

# 启用
source /etc/profile.d/jdk.sh

JDK官方的下载地址: "https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html"

2. 安装zookeeper并配置环境变量

# 配置环境变量
vim /etc/profile.d/zookeeper.sh

ZK_HOME=/dadong/softwares/zookeeper
PATH=$PATH:$ZK_HOME/bin

# 启用
source /etc/profile.d/zookeeper.sh

3. 创建zookeeper用户

# 创建用户数据目录
mkdir -pv /dadong/data

# 指定用户家目录
useradd -d /dadong/data/zookeeper zookeeper

4. 配置zookeeper服务

# 设置配置文件
cd /dadong/softwares/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg

# 配置
vim zoo.cfg
# 将dataDir路径修改成数据目录 dataDir=/tmp/zookeeper
dataDir=/dadong/data/zookeeper

# 技巧:使用sed进行修改
sed -ri 's#(dataDir=)/tmp/zookeeper#\1/dadong/data/zookeeper#' 

三、zookeeper管理

1. zookeeper常用指令

# 启动服务
zkServer.sh start

# 状态查看
# 查看zookeeper状态,查看zookeeper服务状态,启动zookeeper是需要耗时的,因为它会现启动JVM
# 启动一段时间后,再次查看发现,其模式为:"standalone"即为成功
zkServer.sh status

# 停止服务
zkServer.sh stop

2. 使用zkCli.sh工具连接zookeeper

zkCli.sh