Hadoop 生态圈 ————ZooKeeper组件

2024-03-04 13:30

本文主要是介绍Hadoop 生态圈 ————ZooKeeper组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ZooKeeper是一个开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态,根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口、性能高效和功能稳定的系统提供给用户。

ZooKeeper的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。

ZooKeeper安装模式分为:单机模式安装、伪分布式安装和集群模式安装。

Zookeeper的特点:

(1)最终一致性:为客户端展示同一视图,这是ZooKeeper最重要的功能。

(2)可靠性:如果消息被一台服务器接受,那么它将被所有的服务器接受。

(3)实时性:ZooKeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。

(4)等待无关(wait-free):慢的或者失效的client不干预快速的client的请求。

(5)原子性:更新只能成功或者失败,没有中间状态。

(6)顺序性:所有Server,同一消息发布顺序一致。

用到ZooKeeper的系统:

(1)HDFS中的HA方案。

(2)YARN的HA方案。

(3)Hbase:必须依赖ZooKeeper,保存了Regionserver的心跳信息,和其他的一些关键信息。

(4)Flume:负载均衡,单点故障。

ZooKeeper的基本架构如下图所示:

(1)每个Server在内存中存储了一份数据。

(2)Zookeeper启动时,将从实例中选举一个leader(Paxos协议)。

(3)Leader负责处理数据更新等操作(Zab协议)。

(4)一个更新操作成功,当且仅当大多数Server在内存中成功修改数据。

Zookpeeper Server节点的数目一般为奇数,Leader选举算法采用了Paxos协议;Paxos核心思想:当多数Server写成功,则任务数据写成功。也就是说:如果有3个Server,则两个写成功即可,如果有4或5个Server,则三个写成功即可,Server数目一般为奇数(3、5、7...),如果有3个Server,则最多允许1个Server挂掉。

       ZooKeeper主要负责Hadoop集群的一些数据管理问题,如:命名服务、配置管理、状态同步、集群管理、队列管理、分布式锁等。

       ZooKeeper类似于文件系统+监测通知,它维护了一个类似文件系统的树形数据结构ZNode,ZNode节点下可以添加子节点或存储数据。

       ZooKeeper集群是分布式的、一致性的集群,具有容错性、可扩展、高性能等优点,可以配置多个Server节点,官方推荐部署奇数个(2n+1个),集群只要有半数以上(n+1个)的Server节点存活就可以正常对外提供服务。

       ZooKeeper采用写任意的方式,即对数据的修改可以提交给任意一个Server节点,而数据的读取是并行的,节点越多吞吐和响应能力越高。

       ZooKeeper各个Server之间的数据同步依靠Zab协议,Zab协议有两种模式:恢复模式(选举)和广播模式(同步)。当ZooKeeper重启或者Leader节点荡掉后,Zab就进入恢复模式,当Leader选举成功且大多数Server完成了和Leader的状态同步后,Zab就进入广播模式。

       ZooKeeper各个Server之间的选举通过Paxos算法。当Leader崩溃或者Leader失去大多数Follower时,ZooKeeper进入恢复模式重新选举Leader,如果某个Server获得半数以上的票数即成为新的Leader,ZooKeeper进入广播模式并同步数据状态,集群重新对外提供服务。

                                                                                                     郑州新思齐科技有限公司

                                                                                                                 王亚辉

这篇关于Hadoop 生态圈 ————ZooKeeper组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/773316

相关文章

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

BD错误集锦3——ERROR: Can't get master address from ZooKeeper; znode data == null

hbase集群没启动,傻子!   启动集群 [s233 s234 s235]启动zk集群 $>zkServer.sh start $>zkServer.sh status   [s233] 启动dfs系统 $>start-dfs.sh 如果s237 namenode启动失败,则 [s237] $>hadoop-daemon.sh start namenode [s233]启动yarn集群

[分布式网络通讯框架]----Zookeeper客户端基本操作----ls、get、create、set、delete

Zookeeper数据结构 zk客户端常用命令 进入客户端 在bin目录下输入./zkCli.sh 查看根目录下数据ls / 注意:要查看哪一个节点,必须把路径写全 查看节点数据信息 get /第一行代码数据,没有的话表示没有数据 创建节点create /sl 20 /sl为节点的路径,20为节点的数据 注意,不能跨越创建,也就是说,创建sl2的时候,必须确保sl

Transformers和Langchain中几个组件的区别

1.对于Transformers框架的介绍 1.1 介绍: transformers 是由 Hugging Face 开发的一个开源库,它提供了大量预训练模型,主要用于自然语言处理(NLP)任务。这个库提供的模型可以用于文本分类、信息抽取、问答、文本生成等多种任务。 1.2 应用场景: 文本分类:使用 BERT、RoBERTa 等模型进行情感分析、意图识别等。命名实体识别(NER):使用序列

[分布式网络通讯框架]----ZooKeeper下载以及Linux环境下安装与单机模式部署(附带每一步截图)

首先进入apache官网 点击中间的see all Projects->Project List菜单项进入页面 找到zookeeper,进入 在Zookeeper主页的顶部点击菜单Project->Releases,进入Zookeeper发布版本信息页面,如下图: 找到需要下载的版本 进行下载既可,这里我已经下载过3.4.10,所以以下使用3.4.10进行演示其他的步骤。

怎么优化ArcEngine组件开发mfc程序界面?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述   这种VS2015 + ArcEngine10.2开发的mfc小程序怎么优化界面,使系统看上去更美观 如上问题有来自我自身项目开发,有的收集网站

Vue3的Teleport:Teleport是Vue3的一个新功能,它允许我们将子组件渲染到父组件以外的地方,这在处理模态框、弹出窗口等情况时非常有用

I. Teleport 的概述 Teleport 的定义:   在 Vue 3.0 中,Teleport 是一个新的内置组件,它允许我们将任何部分的渲染内容 Teleport(传送)到 Vue 应用范围之外的地方。 换句话说,你可以控制片段,让它们在 DOM 中的任何位置渲染,而不仅仅是在当前组件内部。   Teleport 的效用和应用场景:   Teleport 的主要用途是处理在 UI

Spring响应式编程之Reactor核心组件

Reactor核心组件 Flux和Mono组件(1)Flux组件(2)Mono组件 Flux和Mono组件 Reactor 框架提供了两个核心组件来发布数据,分别是 Flux 和 Mono 组件。两者都是实现Publisher接口的高级抽象,可以说是应用程序开发过程中最基本的编程对象。二者都可以被onComplete信号或者onError信号所终止。 (1)Flux组件 表

windows server 2012 R2 安装桌面体验,安装ActiveSync时提示缺少Windows组件

第一步:启动《服务器管理器》 右键桌面上的"计算机",管理,打开服务器管理器 第二步:选择所有服务器,右键显示出来的服务器,添加角色和功能 第三步,在弹出的弹窗,一直点下一步下一步,到功能位置。 注意安装类型:选择“基于角色或基于功能安装” 然后 点击一下步 服务器选择 :操作: 无需配置,选择下一步 服务器角色:操作: 无需配置,选择下一步 功能 操作 选择 “用户界面和基础结构