一、Zookeeper 简介

Zookeeper 官网: http://zookeeper.apache.org/
Zookeeper 是 Apache 的一个分布式服务框架,是 Apache Hadoop 的一个子项目。官方
文档上这么解释 Zookeeper,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,
如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
简单来说 zookeeper=文件系统+监听通知机制。

二、 Zookeeper 存储结构

在这里插入图片描述

(1)Znode

在 Zookeeper 中,znode 是一个跟 Unix 文件系统路径相似的节点,可以向节点存储数据或者获取数据。
Zookeeper 底层是一套数据结构。这个存储结构是一个树形结构,其上的每一个节点,我们称之为“znode”。
Zookeeper 中的数据是按照“树”结构进行存储的。而且 znode 节点还分为 4 中不同的类型。每一个 znode 默认能够存储 1MB 的数据(对于记录状态性质的数据来说,够了),可以使用 zkCli 命令,登录到 Zookeeper 上,并通过ls、create、delete、get、set等命令操作这些 znode 节点。

(2)Znode 节点类型

(2.1) PERSISTENT-持久化目录节点

客户端与 zookeeper 断开连接后,该节点依旧存在。

(2.2) PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点

客户端与 zookeeper 断开连接后,该节点依旧存在,只是 Zookeeper 给该节点名称进行顺序编号。

(2.3) EPHEMERAL-临时目录节点

客户端与 zookeeper 断开连接后,该节点被删除。

(2.4) EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点

客户端与 zookeeper 断开连接后,该节点被删除,只是 Zookeeper 给该节点名称进行顺序编号。

三、 监听通知机制

Zookeeper 是使用观察者设计模式来设计的。当客户端注册监听它关心的目录节点时,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,Zookeeper 会通知客户端。

四、 安装 zookeeper(单机版)

官方资源包可在 https://zookeeper.apache.org/ 站点中下载。
可以去下载最新版,这里我介绍的zookeeper版本为:3.6.0。

1、安装Linux

如果不知道该怎么安装Linux,点击这里

2、安装JDK

如果不知道该怎么安装JDK,点击这里
并且配置jdk的环境变量:

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

3、上传 Zookeeper

在虚拟机的root目录下新建了一个temp目录,我们将文件上传到temp目录下,如果不知道文件该怎么上传的请学习这个笔记
文件上传之后,将文件解压并且拷贝到/usr/local/zookeeper目录下,命令如下所示:

[root@localhost temp]# tar -zxf zookeeper-3.6.0.tar.gz
[root@localhost temp]# cp zookeeper-3.6.0 /usr/local/zookeeper -r

然后可以进入zookeeper目录下使用ls查看目录结构:

1. bin:放置运行脚本和工具脚本,
2. conf:zookeeper 默认读取配置的目录,里面会有默认的配置文件
3. docs:zookeeper 相关的文档
4. lib:zookeeper 核心的 jar
5. logs:zookeeper 日志

4、配置zookeeper

Zookeeper 在启动时默认的去 conf 目录下查找一个名称为 zoo.cfg 的配置文件。在 zookeeper 应用目录中有子目录 conf。
其中有配置文件模板:zoo_sample.cfg,因此我们进入到该目录下将文件拷贝一份并且重新命名,将zookeeper 应用中的配置文件改为 conf/zoo.cfg。

cd zookeeper/conf
cp zoo_sample.cfg zoo.cfg

之后便是修改配置文件 zoo.cfg - 设置数据缓存路径,我们先退回到zookeeper的目录下,使用mkdir命令新建一个文件夹data,使用pwd命令获取当前文件的路径,复制路径,然后再进入到conf目录下编辑配置文件 zoo.cfg。

cd ..
mkdir data
pwd
cd ../conf
vim zoo.cfg

然后将配置文件作一下修改,然后ESC,保存并退出(:wq):
在这里插入图片描述

5、启动Zookeeper

以上配置完成之后,我们进入到zookeeper/bin目录下,
使用以下命令启动zookeeper:

启动zookeeper:
./zkServer.sh start

关闭zookeeper:
./zkServer.sh stop

查看zookeeper状态:
./zkServer.sh status

默认加载配置文件:./zkServer.sh start:默认的会去 conf 目录下加载 zoo.cfg 配置文件。
指定加载配置文件:./zkServer.sh start 配置文件的路径。
启动成功图为:
在这里插入图片描述

6、使用客户端连接单机版 Zookeeper

前提是先成功启动zookeeper,如果启动不成功请详细检查自己哪一步出错了。

6.1、连接方式一

到zookeeper的bin目录下使用命令:

./zkCli.sh

默认连接地址为本机地址,默认连接端口为 2181
成功连接之后为:
在这里插入图片描述
按Ctrl+C退出,或者输入命令quit

6.2、连接方式二

这种方式可以远程调用,这里不做详细介绍,
还是在bin目录下执行以下:

./zkCli.sh -server ip:port
连接指定 IP 地址与端口

比如说我192.168.15.130的虚拟机下也装了一个zookeeper单机版,那我在启动两个虚拟主机的zookeeper之后,在本机的zookeeper/bin目录下使用:

./zkCli.sh -server 192.168.15.130:2181
如果130的那台zookeeper的端口还是2181的话就这样写

五、下篇学习预告

Zookeeper集群的安装
Zookeeper常用命令介绍

上一篇学习:学习笔记之Linux学习(三)

下一篇学习:学习笔记之Zookeeper学习(二)

如果觉得对自己有帮助,欢迎大家点赞、评论!

Logo

更多推荐