Zookeeper分布式协调服务安装与使用

Zookeeper分布式协调服务安装与使用

重要知识点:
Zookeeper是一个分布式协调服务的开源框架,它是由Google的Chubby开源实现。Zookeeper主要用来解决分布式集群中应用系统的一致性问题和单点故障问题,例如如何避免同时操作同一数据造成脏读的一致性问题等。
Zookeeper具有全局数据一致性、可靠性、顺序性、原子性以及实时性,可以说Zookeeper的其他特性都是为满足Zookeeper全局数据一致性这一特性。
Zookeeper集群是一个主从集群(一般为奇数2n+1),它一般是由一个Leader(领导者)和多个Follower(跟随者)组成。此外,针对访问量比较大的Zookeeper集群,还可新增Observer(观察者)。Zookeeper集群中的三种角色各司其职,共同完成分布式协调服务。
在这里插入图片描述

实验内容与步骤:
一、Zookeeper的安装与配置
1.Zookeeper的下载
在Ubuntu下打开官网:https://zookeeper.apache.org/releases.html进行下载。
在这里插入图片描述

在这里插入图片描述

下载完成后,会自动下载到Downloads目录下:

注:如果windows系统下载该安装文件的话,需要复制安装文件到Linux系统的Downloads目录下。
1.Zookeeper安装
1)打开终端,解压安装包apache-zookeeper-3.6.2-bin.tar.gz至路径 /opt,命令如下:
sudo tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz -C /opt
在这里插入图片描述

2)查看是否解压成功

在这里插入图片描述

3)将解压的文件夹重命名为zookeeper并添加zookeeper的权限
sudo mv apache-zookeeper-3.6.2-bin/ zookeeper #更名为zookeeper
sudo chown -R hadoop:hadoop zookeeper #把zookeeper文件夹的权限赋给hadoop用户和hadoop组。
在这里插入图片描述

4)环境变量配置
修改/etc/profile配置文件,添加zookeeper环境变量
sudo vim /etc/profile
在这里插入图片描述

在这里插入图片描述

使变量配置生效
source /etc/profile
在这里插入图片描述

5)zookeeper配置
为模拟3个分布式节点,所以须要创建三个节点的配置文件 zoo1.cfg、zoo2.cfg、zoo3.cfg
cd /opt/zookeeper/conf/
将zoo_sample.cfg改名为zoo1.cfg
sudo mv zoo_sample.cfg zoo1.cfg
cp zoo1.cfg zoo2.cfg
cp zoo1.cfg zoo3.cfg
在这里插入图片描述

zoo1.cfg配置例如以下 (注意以下标红的地方)
sudo vim zoo1.cfg
在这里插入图片描述

dataDir=/opt/zookeeper/data/zk1
clientPort=2181
server.1=ubuntu:2888:3888
server.2=ubuntu:2889:3889
server.3=ubuntu:2890:3890

在这里插入图片描述

Zoo2.cfg配置例如以下 (注意以下标红的地方)

sudo vim zoo2.cfg
在这里插入图片描述

dataDir=/opt/zookeeper/data/zk2
clientPort=2182
server.1=ubuntu:2888:3888
server.2=ubuntu:2889:3889
server.3=ubuntu:2890:3890

在这里插入图片描述

Zoo3.cfg配置例如以下 (注意以下标红的地方)
sudo vim zoo3.cfg
在这里插入图片描述

dataDir=/opt/zookeeper/data/zk3
clientPort=2183
server.1=ubuntu:2888:3888
server.2=ubuntu:2889:3889
server.3=ubuntu:2890:3890

在这里插入图片描述

注意:配置说明
tickTime:这个时间是作为 Zookeeper server之间或client与server之间维持心跳的时间间隔,也就是每一个 tickTime 时间就会发送一个心跳。
initLimit:这个配置项是用来配置 Zookeeper 接受client(这里所说的client不是用户连接 Zookeeper server的client,而是 Zookeeper server集群中连接到 Leader 的 Follower server)初始化连接时最长能忍受多少个心跳时间间隔数。
当已经超过 10个心跳的时间(也就是 tickTime)长度后 Zookeeper server还没有收到client的返回信息,那么表明这个client连接失败。总的时间长度就是 102000=20 秒
syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息。请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度。总的时间长度就是 5
2000=10秒
dataDir:顾名思义就是 Zookeeper 保存数据的文件夹,默认情况下,Zookeeper 将写数据的日志文件也保存在这个文件夹里。
clientPort:这个port就是client连接 Zookeeper server的port。Zookeeper 会监听这个port,接受client的訪问请求。
server.A=B:C:D:当中 A 是一个数字。表示这个是第几号server;B 是这个server的 ip 地址;C 表示的是这个server与集群中的 Leader server交换信息的port;D 表示的是万一集群中的 Leader server挂了。须要一个port来又一次进行选举。选出一个新的 Leader。而这个port就是用来运行选举时server相互通信的port。假设是伪集群的配置方式,因为 B 都是一样,所以不同的 Zookeeper 实例通信port号不能一样,所以要给它们分配不同的port号。
6)创建zookeeper保存数据文件
sudo mkdir -p /opt/zookeeper/data/zk1
sudo mkdir -p /opt/zookeeper/data/zk2
sudo mkdir -p /opt/zookeeper/data/zk3
在这里插入图片描述

7)创建节点标识
在下面三个文件夹下分别创建myid文件
里面分别写1、2、3用于标识第几号server
sudo vim /opt/zookeeper/data/zk1/myid

1

sudo vim /opt/zookeeper/data/zk2/myid

2

sudo vim /opt/zookeeper/data/zk3/myid

3

在这里插入图片描述

8)启动zookeeper
cd /opt/zookeeper/
sudo chmod -R 777 data/

在这里插入图片描述

./bin/zkServer.sh start conf/zoo1.cfg
./bin/zkServer.sh start conf/zoo2.cfg
./bin/zkServer.sh start conf/zoo3.cfg
在这里插入图片描述

9)查看启动状态
./bin/zkServer.sh status conf/zoo1.cfg
./bin/zkServer.sh status conf/zoo2.cfg
./bin/zkServer.sh status conf/zoo3.cfg
在这里插入图片描述

10)验证zookeeper安装的正确性

在这里插入图片描述

如果连接成功,会有Welcome to zookeeper!和state状态等信息。证明已经成功连接到zookeeper服务。
11)假设想停止server可使用下面命令
./bin/zkServer.sh stop conf/zoo1.cfg
./bin/zkServer.sh stop conf/zoo2.cfg
./bin/zkServer.sh stop conf/zoo3.cfg
提示:下面要进行Shell命令操作,所以暂时不要停止server服务。
二、通过Shell命令操作zookeeper
1)查看操作命令帮助手册

在这里插入图片描述

2)查看当前zookeeper中所包含的内容
在这里插入图片描述

3)创建节点
创建节点命令格式:create [-s] [-e] [-c] [-t ttl] path [data] [acl]
-s:表示十分开启节点的序列化特性
-e:表示开启临时节点的特性,若不指定,则表示永久节点。
path:表示创建的路径
data:表示创建节点的数据,这是因为Znode可以像目录一样存在也可以像文件一样保存数据。
Acl:进行权限控制。一般不需要了解。
示例:创建临时节点
在这里插入图片描述

4)获取节点
命令格式:get [-s] [-w] path
在这里插入图片描述

5)修改节点
命令格式:set [-s] [-v version] path data
data:表示要修改的内容
version:表示数据版本
在这里插入图片描述

6)删除节点
delete [-v version] path
在这里插入图片描述
到了这一步,本次实验就完成了,你今天学会了吗?

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值