首页 > 其他分享 >Zookeeper分布式协调服务

Zookeeper分布式协调服务

时间:2022-09-27 16:46:49浏览次数:64  
标签:服务 Zookeeper 协调 集群 分布式 节点 客户端

大数据项目最终需要运行在大数据平台之上,而构建Hadoop 集群是构建整个大数据平台的核心。Hadoop 集群包含 HDFS 集群和YARN 集群,想要构建高可用的 Hadoop 集群又依赖Zookeeper 集群提供协调服务,所以需要在hadoop01、hadoop02和hadoop03节点上依次构建Zookeeper、HDFS和YARN 集群。接下来,我们首先认识和了解Zookeeper。

一、Zookeeper分布式协调服务

编写单机版的应用比较简单,但是编写分布式应用就比较困难,主要原因在于会出现部分失败。什么是部分失败呢?

一条消息在两个节点之间传输时,出现出现网络错误,发送者不知对方是否接收到这条信息,信息是否完整和正确,也有可能没有收到,又或者接收者的进程已经“死掉”。发送者只能重新连接接收者并发送咨询请求才能获知之前的信息接收者是否收到。简而言之,部分失败就是不知道一个操作是否已经失败。使用Zookeeper并不能避免部分失败,Zookeeper可提供一组工具让开发者进行分布式构建时对部分失败进行正确处理。

二、Zookeeper架构设计及原理

Zookeeper 作为一个分布式协调系统,为大数据平台其他组件提供了协调服务。要想理解Zookeeper 如何对外提供服务,首先需要理解Zookeeper的架构设计和工作原理。

1.Zookeeper定义

l Zookeeper是一个分布式的、开源的协调服务框架,它提供数据结构操作服务,分布式应用可以构建出高级别的服务。比如分布式锁服务、配置管理服务、分布式消息队列、分布式通知与协调训务等。

l 易于编码,数据模型构建在文件系统中。

l Zookeeper可运行在Java环境上,支持多种语言。

2. Zookeeper的特点

Zookeeper 对集群提供分布式协调服务,具有以下特点:

l Zookeeper最重要的特点是:始终保持一致性:客户端接入任何一个服务器,都是同一个视图界面。

l 可靠性∶Zookeeper具有简单、健壮、良好的性能。

l 实时性Zookecper 保证客户端将在一个时间间隔范围内,获得服务器更新的信息或服务器外效的信息。

l 等待无关(wait-free)∶慢的或失效的客户端不得干预快速客户端的请求,这就使得每个客户端都能有效地等待。

l 原子性∶对Zookeeper的更新操作只有两种状态:成功或者失败,没有第三种可能。

l 顺序性∶它包括全局有序和偏序两种。全局有序是针对服务器端,更新操作都有严格的偏序关系,是确保Zookeeper功能正确性的关键。例如,在一台服务器上,消息 A 在消息 B 前发布,那么所有服务器上的消息 A 都将在消息 B 前发布。偏序是针对客F 端,例如,在同一个客户端消息B在消息A后发布,那么执行的顺序必将是先执行消息A 后再执行消息 B。

3.Zookeeper的基本架构

Zookeeper服务自身组成一个集群(2n+1 个服务节点最多允许 n 个失效)。Zookeeper 服务有两种角色∶一种主节点,用于投票的发起,做出决议,并及时更新系统状态;

另一种从节点,接收客户端请求,并向客户端返回结果,在过程中参与投票。主节点失效后,会在从节点中重新选举新的主节点。Zookeeper系统架构如下图所示:

接下来对Zookeeper系统架构进行简单的解释说明。客户端(Client)可以选择连接到Zookeeper集群中的每台服务端(Server),而且每台服务端的数据完全相同。每个从节点都需要与主节点进行通信,并同步主节点上更新的数据。对于Zookecper集群来说,只要超过一半数量的Zookeeper服务端可用,Zookeeper整体服务就可用。

4.Zookeeper的工作原理

Zookeeper 的核心是原子广播,该原子广播就是对 Zookeeper 集群上的所有主机发送数据包,通过这个机制保证了各个服务端之间的数据同步。实现这个机制在Zookeeper中有一个内部协议,此协议有两种模式,一种是恢复模式,一种是广播模式。状态同步保证了主节点和服务端具有相同的系统状态。广播模式是主节点和从节点进行同步后就可以广播消息。在广播模式下,服务端会接受客户端的请求,所有的写请求都被转发给主节点,再由主节点发送广播给从节点。从节点完成数据的写入请求后,主节点才会提交这个更新,客户端才会收到一个更新成功的响应。

标签:服务,Zookeeper,协调,集群,分布式,节点,客户端
From: https://www.cnblogs.com/tiduyun/p/16735032.html

相关文章

  • 分布式ID详解(5种分布式ID生成方案)
    分布式架构会涉及到分布式全局唯一ID的生成,今天我就来详解分布式全局唯一ID,以及分布式全局唯一ID的实现方案@mikechen什么是分布式系统唯一ID在复杂分布式系统中,往往需......
  • 分布式ID生成方案
    分布式ID策略为什么要用分布式ID?在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从......
  • JAVA中的高并发,解决高并发的方案教程 java分布式解决方案
     java高并发,如何解决,什么方式解一、什么是高并发1.1高并发(HighConcurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时......
  • Zookeeper升级新版本步骤
    Zookeeper升级新版本步骤一、需求由于安全漏洞扫描,需要对zookeeper进行升级。从3.3.6升级至3.4.9。二、升级步骤去官方下载zookeeper的包。wgethtt......
  • readis 分布式锁
    在我们的日常开发中,一个进程中当多线程的去竞争某一资源的时候,我们通常会用一把锁来保证只有一个线程获取到资源。如加上synchronize关键字或ReentrantLock锁等操作。那么......
  • SpringCloud config分布式配置
    分布式的问题,配置文件的管理简单来说就是,我们每一个微服务自己带着一个application.yml,那上百的的配置文件要修改起来,岂不是要疯了。所以将一些经常要改的文件发布到git......
  • 分布式事务
    分布式事务1.分布式事务问题1.1.本地事务本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:1.2.分布式事务分布式事务,就是指不是在单个服务或单......
  • hadoop-zookeeper框架
    zookeeper协调机制选举leader多个flower客户端服务器特点半数以上数据一致性在有限时间范围内,执行顺序同步于发送顺序文件结构类unix树状每一个结点既是文件夹......
  • zookeeper简单入门
    zookeeper官网地址:https://zookeeper.apache.org/doc/r3.8.0/zookeeperStarted.html中文地址:https://zookeeper.net.cn/index.html介绍核心概念zookeeper是一个分......
  • 分布式实时计算框架原理及实践案例 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1B9GDre_XZYMncW9WYhPqlg点击这里获取提取码 ......