Zookeeper01(zookeeper简介、zookeeper存储结构、监听通知机制、安装zookeeper)

Zookeeper实战01

一、 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

官方资源包可在 zookeeper.apache.com 站点中下载。最新发布版本为:3.6.0。

[1]安装单机版

1 安装 Linux
2 安装 JDK并配置环境变量
3 上传 Zookeeper
在这里插入图片描述
4解压 Zookeeper 压缩包
解压压缩包到 /usr/local/ 目录下

tar -zxf apache-zookeeper-3.6.0-bin.tar.gz -C  /usr/local/

把目录名apache-zookeeper-3.6.0-bin 改为zookeeper

mv apache-zookeeper-3.6.0-bin/ zookeeper/

在这里插入图片描述
5.Zookeeper 目录结构
在这里插入图片描述

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

6.配置 Zookeeper

Zookeeper 在启动时默认的去 conf 目录下查找一个名称为 zoo.cfg 的配置文件。
在 zookeeper 应用目录中有子目录 conf。其中有配置文件模板:zoo_sample.cfg
zookeeper 应用中的配置文件为 conf/zoo.cfg。我们需要拷贝配置文件并命名为zoo.cfg

在总目录下创建data目录,并进入data目录,复制路径
在这里插入图片描述
进入zookeeper的conf目录
拷贝zoo_sample.cfg并命名为zoo.cfg

cp zoo_sample.cfg  zoo.cfg

在这里插入图片描述
打开 zoo.cfg,把复制的data路径粘贴到图中位置
在这里插入图片描述
保存并退出 -ESC :wq
开启防火墙的2181端口

开端口命令:firewall-cmd --zone=public --add-port=2181/tcp --permanent
重启防火墙:systemctl restart firewalld.service
查看防火墙端口:firewall-cmd --list-ports

在这里插入图片描述
7 启动 Zookeeper
进入bin目录
./zkServer.sh start(开启时默认的会去 conf 目录下加载 zoo.cfg 配置文件)
停止 Zookeeper
./zkServer.sh stop
查看 Zookeeper 状态
./zkServer.sh status

注意:若启动时无异常,但查看状态时出现异常
在这里插入图片描述
则进入zookeeper/log/目录,使用cat命令查看zookeeper-root-server-izwz93izbw8xgjjlyk29xez.out文件
在这里插入图片描述
找到异常信息
在这里插入图片描述
复制后百度搜索,查找解决方案。
8 使用客户端连接单机版 Zookeeper
连接方式1
默认连接地址为本机地址,默认连接端口为 2181

# 进入bin目录下
./zkCli.sh

连接方式2

# 进入bin目录下
./zkCli.sh -server ip:port

连接指定 IP 地址与端口

[2]安装集群版

1 Zookeeper集群说明
Zookeeper 集群中的角色。Zookeeper 集群中的角色主要有以下三类
在这里插入图片描述
在这里插入图片描述
在集群未创建时,每个server节点都是Follower。创建集群时,会根据Zookeeper的内部算法选出一个Leader和至少一个ObServer。Server每一个节点都是相通的,客户端可以连接任意一个Server节点。不管哪个节点状态发生改变,它会先通知Leader,Leader再通知给其他的Follower到节点发生改变的Follower同步数据。

2集群安装
使用 3 个 Zookeeper 应用搭建一个伪集群。应用部署位置是:192.168.233.130。客户端监听端口分别为:2181、2182、2183。投票选举端口分别为 2881/3881、2882/3882、2883/3883。
tar -zxf zookeeper-3.6.0.tar.gz
将解压后的 Zookeeper 应用目录重命名,便于管理
mv zookeeper-3.6.0 zookeeper01
提供数据缓存目录
在 zookeeper01 应用目录中,创建 data 目录,用于缓存应用运行数据
cd zookeeper01
mkdir data
复制应用
复制两份 Zookeeper 应用。用于模拟集群中的 3 个节点。
cp -r zookeeper01 zookeeper02
cp -r zookeeper01 zookeeper03
提供配置文件
在 zookeeper 应用目录中有子目录 conf。其中有配置文件模板:zoo_sample.cfg
cp zoo_sample.cfg zoo.cfg
zookeeper 应用中的配置文件为 conf/zoo.cfg。
修改配置文件 zoo.cfg - 设置数据缓存路径
dataDir 参数值为应用运行缓存数据保存目录。
提供应用唯一标识
在 Zookeeper 集群中,每个节点需要一个唯一标识。这个唯一标识要求是自然数。且唯一标识保存位置是:数据缓存目录(dataDir=/usr/local/zookeeper/data)的 myid 文件中。其中“数据缓存目录”为配置文件 zoo.cfg 中的配置参数
在 data 目录中创建文件 myid : touch myid
为应用提供唯一标识。本环境中使用 1、2、3 作为每个节点的唯一标识。
vi myid
简化方式为: echo [唯一标识] >> myid。 echo 命令为回声命令,系统会将命令发送的数据返回。 '>>'为定位,代表系统回声数据指定发送到什么位置。 此命令代表系统回声数据发送到 myid 文件中。 如果没有文件则创建文件。
修改配置文件 zoo.cfg - 设置监听客户端、投票、选举端口
vim zoo.cfg

clientPort=2181 #服务端口根据应用做对应修改,zk01-2181,zk02-2182,zk03-2183
server.1=192.168.233.130:2881:3881
server.2=192.168.233.130:2882:3882
server.3=192.168.233.130:2883:3883

编写启动、关闭集群脚本
在 Linux 中可以使用 chmod 命令为文件授权。

chmod 777 文件名
#777 表示为文件分配可读,可写,可执行权限。

启动 Zookeeper 集群脚本

zookeeper01/bin/zkServer.sh start
zookeeper02/bin/zkServer.sh start
zookeeper03/bin/zkServer.sh start

关闭 Zookeeper 集群脚本

zookeeper01/bin/zkServer.sh stop
zookeeper02/bin/zkServer.sh stop
zookeeper03/bin/zkServer.sh stop

连接集群
可以使用任何节点中的客户端工具连接集群中的任何节点。
./zkCli.sh -server 192.168.233.130:2183

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值