【Hadoop】什么是Zookeeper?如何理解Zookeeper?

ZooKeeper 是一个开源的分布式应用程序协调服务,可以为分布式应用提供一致性的服务,功能 包括:配置维护、名字服务、分布式同步、组服务等等。ZooKeeper 的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

1.Zookeeper的特点

  • 最终一致性:Client 不论连接到哪个 Server, 展示给它的都是同一个视图。
  • 可靠性:如果某个消息被一台服务器接受,那么它将被集群中所有的服务器接受。
  • 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新或者服务器失效的信息。
  • 等待无关(wait-free):慢的或者失效的Client不得干预速的Client的请求。
  • 原子性:更新只能成功或者失败,没有中间状态。
  • 顺序性:所有server,同一消息发布顺序一致。

2. ZooKeeper 的架构

ZooKeeper 采用主从架构,主要包括以下组件:

(1)客户端:与 ZooKeeper 集群交互的应用程序。

(2)服务器集群:集群由多个服务器节点组成,每个服务器节点可以是以下角色之一:

  • Leader:负责处理写请求和事务操作。
  • Follower:处理读请求,并参与 Leader 选举和写请求的确认。
  • Observer:扩展 ZooKeeper 集群的读能力,不参与写请求的确认和 Leader 选举。

3.如何理解Zookeeper

ZooKeeper 就像是一个分布式的"公告板",所有的客户端都可以在这个公告板上发布信息、读取信息,并且能够实时监控信息的变化。

  • 客户端:看公告板的人,可以进行贴,读,撕,监控便签。
  • 服务器集群:管理公告板的人们。Leader :负责处理写操作(比如贴便签、撕便签)。Follower :负责处理读操作,并协助 Leader 管理公告板。Observer:只负责处理读操作,不参与写操作的管理。

工作流程:公告板的运作

(1)写操作(贴便签)

  1. 你(客户端)想贴一张便签,于是告诉管理公告板的人(ZooKeeper 服务器)。
  2. 如果管理公告板的人是 Follower,他会把这件事告诉 Leader。
  3. Leader 会召集所有管理公告板的人开会,讨论是否同意贴这张便签。
  4. 如果大多数人同意,Leader 就会把便签贴在公告板上,并通知你贴好了。

(2)读操作(看便签)

  1. 你(客户端)想看看公告板上的某张便签,于是随便找一个管理公告板的人(ZooKeeper 服务器)。
  2. 管理公告板的人直接从公告板上找到便签,并把内容告诉你。

(3)监控便签(实时通知)

  1. 你(客户端)对某张便签感兴趣,于是告诉管理公告板的人:"如果有人动了这张便签,请立刻通知我。"
  2. 如果有人修改了便签内容,管理公告板的人会立刻通知你。

四.应用场景:公告板的用途

  • 分布式锁:比如你想独占某个资源,可以在公告板上贴一张"临时便签",其他人看到这张便签就知道资源被占用了。
  • 配置管理:比如你想让所有客户端都知道某个配置信息,可以在公告板上贴一张"持久便签",大家随时都能看到。
  • 集群管理:比如你想知道哪些服务器还在工作,可以让每台服务器在公告板上贴一张"临时便签",如果某台服务器掉线了,便签会自动消失。
相关推荐
武子康9 分钟前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康1 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天1 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康3 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
武子康4 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库5 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟5 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人5 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法