学习笔记之Zookeeper学习(一):Zookeeper简介、存储结构、监听通知机制、单机版的安装
目录一、Zookeeper 简介二、 Zookeeper 存储结构(1)Znode(2)Znode 节点类型(2.1) PERSISTENT-持久化目录节点(2.2) PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点(2.3) EPHEMERAL-临时目录节点(2.4) EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点三、 监听通知机制四、 安装 zookeeper
一、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学习(二)
如果觉得对自己有帮助,欢迎大家点赞、评论!
更多推荐
所有评论(0)