Zookeeper以及Zookeeper集群搭建

1.Zookeeper

1.1Zookeeper介绍

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

Zookeeper的目标就是封装好复杂容易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Zookeeper包含一个简单的原语集,提供Java和C的接口。

Zookeeoer代码版本中,提供了分布式独享锁,选举、队列的接口,代码在Zookeeper-3.4.3\src\recipes。其中分布式锁和队列有java和C两个版本,选举只有Java版本。

总结:Zookeeper负责服务的协调调度提供了一致性的服务,当客户端发起请求时,返回正确的服务地址。

1.2Zookeeper下载

网址: http://zookeeper.apache.org/releases.html.

如图所示

下载路径,点击download.

如图所示

下载Zookeeper地址.

http://mirrors.hust.edu.cn/apache/zookeeper/

如图所示

1.3Zookeeper安装

1.3.1安装jdk

Zookeeper启动依赖于JDK,所以安装Zookeeper之前先检查是否已安装jdk

将JDK1.8文件上传到Linux操作系统中/src/usr/local/java/文件下.

如图所示

1.解压文件

tar -xvf jdk-8u51-linux-x64.tar.gz

2.配置环境变量

编辑环境变量配置文件

vim /etc/profile

如图所示

使JDK生效之后检查jdk安装是否成功

source /etc/profile

检查jdk是否安装成功

Java -version

如图所示

1.4开始安装Zookeeper

1.4.1上传安装文件

说明:上传Zookeeper安装文件,之后解压

如图所示

解压文件

tar -xvf zookeeper-3.4.8.tar.gz

将解压后的文件改一下名称

 mv apache-zookeeper-3.6.0-bin zookeeper
 

1.4.2修改配置文件

进入Zookeeper目录文件下创建两个文件夹data、log

mkdir data log

如图所示

进入conf目录下修改配置文件

复制配置文件并修改名称

 cp zoo_sample.cfg zoo.cfg

进入zoo.cfg文件里修改配置文件

vim zoo.cfg

如图所示

1.4.3启动Zookeeper

跳转到bin目录中 启动/关闭命令如下

启动命令:sh zkServer.sh start 或者  ./zkServer.sh start

关闭命令:sh zkServer.sh stop

查看zookeeper状态:sh zkServer.sh status

如图所示

2.Zookeeper集群的搭建

2.1准备文件夹

在Zookeeper根目录中创建新的文件夹zkCluster

如图所示

进入zkCluster目录下创建3个文件夹zk1、zk2、zk3

mkdir zk1 zk2 zk3

如图所示

在每个文件夹里创建data、log文件夹

mkdir {zk1,zk2,zk3}/{data,log}

如图所示

2.2添加myid文件

分别在zk1/zk2/zk3中的data文件夹中创建新的文件myid,其中的内容一次为1/2/3,与zk节点号对应

如图所示

查看myid文件的内容

如图所示

2.3编辑配置文件

将zoo_sample.cfg复制为zoo1.cfg之后修改配置文件

cp zoo_sample.cfg zoo1.cfg

如图所示

2.4修改zoo1.cfg配置文件

注意:这里的ip地址为虚拟机的ip地址

配置完成后将zoo1.cfg复制2份,分别为zoo2.cfg、zoo3.cfg,之后修改对应的文件夹目录,和不同的端口即可

2.5Zookeeper集群的测试

进入bin目录下,通过下面的命令启动Zookeeper集群

sh zkServer.sh start zoo1.cfg

sh zkServer.sh start zoo2.cfg

sh zkServer.sh start zoo3.cfg

检查主从关系

Zookeeper集群中leader负责监控集群的状态,follower主要负责客户端链接获取服务列表信息,同时当主机宕机后参与投票

3.搭建Zookeeper集群的规则

规则:剩余存活节点的数量>N/2    N代表节点总体数

计算:

1个节点    1-1>1/2  假的   1个节点不能搭建集群

2个节点    2-1>2/2   假的   2个节点不能搭建集群

3个节点    3-1>3/2  真的    3个节点可以搭建集群   故:集群的最小的单位为3台

4个节点    4-1>4/2   真的   4个节点可以搭建集群

4.为什么集群一般都是奇数台

从容灾性/经济性的角度考虑问题

奇数3台 3-1>3/2   宕机一台后集群仍可以正常工作

              3-2>3/2   宕机2台后集群就崩溃了

偶数4台  4-1>4/2  宕机1台后集群仍可以正常工作

               4-2>4/2   宕机2台后集群崩溃

答案:发现奇数台和偶数台的容灾性是相同的,但是从经济性角度上来说,奇数台更花的钱更少,s所以搭建奇数台更好

5.Zookeeper集群选举规则

规则:myid最大值优先,只讨论一轮

考题:

编号1,2,3,4,5,6,7依次启动,谁当主机?谁永远当不了主机?

分析:

1.根据Zookeeper集群的搭建规则 剩余存活节点数>N/2,要大于7/2,存活的数量必须大于大于4,所以至少启动4台才可以搭建集群,所以4当主机,如果7台都启动了,假如4宕机掉了,则选举出5当主机,5宕机了选举6当主机,6宕机了选举7当主机。

2.所以1,2,3永远都当不了主机

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值