Zookeeper简介

Hadoop的HA

所谓的HA(Heigh Available)即高可用,是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断地提供服务,把因为软件。硬件,人为造成的故障对业务的影响降到最小成都。总而言之就是保证
企业服务7*24小时不宕机。

HDFS的HA功能通过配置Active和Standby两个状态的NameNode,实现集群中的NameNode的热备来解决上述问题。平常使用Active状态的NameNode,如果其出现故障,立即切换Standby状态的NameNode为Active状态接受工作。在这个过程中我们需要引入JournalNode的状态。HDFS HA的架构如图:
在这里插入图片描述

Zookeeper的概述

Zookeeper 是一个分布式服务框架,是ApacheHadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一名称服务、状态同步服务、集群管理、分布式应用配置项的管理等。
为了防止Zookeeper出现单点故障问题,Zookeeper也是以集群的形式使用的。推荐集群不少于3个节点,比关切总量是奇数。在Zookeeper集群节点的角色总共可以分为一下两类:
Leader:集群通过选举 过程从所选节点中选举一个节点作为Leader。Leader负责接受客户端的读写请求,并把写入的数据同步到其他节点。
Follower:作为Leader的备份,在Leader宕机后参与选举Leader操作。

Zookeeper的选举机制

Zookeeper集群通过选举机制实现HA。选举的规则只有两点:少数服从多数和编号大的优先。假设目前有5台服务器,每台服务器均没有数据,他们的编号分别是1、2、3、4、5。如果按编号依次启动,他们的选举过程如下:

现有服务器1,服务器2,服务器3,服务器4,服务器5
服务器1启动,因为我们后面没有服务器,所以它就会给自己投一票,因为票数没有半,所以没有
服务器1不是领导者,暂时是观察者(观察者就是,我们在领导者没有出来的时候,服务器票数
没有过半,这个时候,服务器就会,先进行观察)
当每次有服务器进行开启,就会由这些观察者进行投票选举

服务器2开启,这个时候服务器1知道,服务器1给服务器2投了一票,服务器2又给自己投了一票。
这个时候服务器2有两票,但是没有过半,不能当领导者,暂只能当观察者
当有新的服务器开启,服务器1和服务器2会进行选举

服务器3启动,服务器1和服务器2分别给服务器3一票,服务器3给自己一票,因为这个时候服务器3
有了三票,所以服务器3当选leader(领导者)后面在开启服务器只能当选跟随者
选举机制:少数服从多数,票数过半就当选lerder(领导者)

服务器4开启,首先给自己一票。然后与服务器1,2,3进行交换信息,得到已经有领导者的信息
这个时候服务器4沦为跟随

服务器5开启,给自己投一票,然后交换信息,领导者已经存在,所以只能沦为跟随者

当服务器3宕机,服务器号大的当领导者

Zookeeper能做什么

zookeeper功能非常强大,可以实现诸如分布式应用配置管理、统一命名服务、状态同步服务、集群管理等功能,我们这里拿比较简单的分布式应用配置管理为例来说明。

假设我们的程序是分布式部署在多台机器上,如果我们要改变程序的配置文件,需要逐台机器去修改,非常麻烦,现在把这些配置全部放到zookeeper上去,保存在 zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 zookeeper 的通知,然后从 zookeeper 获取新的配置信息应用到系统中。
在这里插入图片描述
如上,你大致应该了解zookeeper是个什么东西,大概能做些什么了,我们马上来学习下zookeeper的安装及使用,并开发一个小程序来实现zookeeper这个分布式配置管理的功能。

Zookeeper 下 Server 工作状态

服务器具有四种状态,分别是 LOOKING、FOLLOWING、LEADING、OBSERVING。

(1)LOOKING:寻 找 Leader 状态。当服务器处于该状态时,它会认为当前集群中没有 Leader,因此需要进入 Leader 选举状态。

(2)FOLLOWING:跟随者状态。表明当前服务器角色是 Follower。

(3)LEADING:领导者状态。表明当前服务器角色是 Leader。

(4)OBSERVING:观察者状态。表明当前服务器角色是 Observer。

Zookeeper 有哪几种几种部署模式?

Zookeeper 有三种部署模式:

  1. 单机部署:一台集群上运行;

  2. 集群部署:多台集群运行;

  3. 伪集群部署:一台集群启动多个 Zookeeper 实例运行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值