大数据技术学习——管理组件ZooKeeper

举报
slx_share 发表于 2023/02/02 11:01:34 2023/02/02
【摘要】 ZooKeeper(ZK)是提供一致性协调服务的组件,本质上是一个提供监听机制的文件系统。

1       一句话介绍

ZooKeeper(ZK)是提供一致性协调服务的组件,本质上是一个提供监听机制文件系统

2       基本概念

  • znodeZK本质是一个分布式的树形文件系统,树上每个目录节点(znode)负责存储数据。可以像操作普通文件系统那样自由删除增加znode或添加子znodeznode分为持久化节点以及临时节点。
    • 持久化节点(Persistent):客户端会话断开后节点仍然存在。特别地,持久化顺序编号节点会自动分配一个顺序编号。
    • 临时节点(Ephemeral):客户端会话断开后节点即被删除。特别地,临时顺序编号节点会自动分配一个顺序编号。临时节点不能有子节点。


  • watcherZK采用watcher实现监听机制。客户端生成watcher对象后,将其注册到ZK中,自身WatchManager也保留一份。当ZK监控到数据发生变化时,会主动通知到客户端。


3       ZooKeeper架构


ZK部署在(2N+1)个节点之上,只有当(N+1)个投票才能执行写操作。

  • Leader:由Follower通过ZAB协议投票产生,负责接收和协调所有写请求。
  • FollowerLeader的替补,转发写请求给Leader,执行来自Leader的写请求。
  • Observer:只处理读请求以及同步Leader的数据。不参与Leader选举以及写请求投票。
  • Client:集群中所有使用ZK一致性服务的组件都可以是客户端,例如HMaster

4       ZooKeeper读写流程

  • 写流程:
    • 任意节点接收到写请求都转发给Leader
    • LeaderFollower投票决定是否接收该写请求。
    • LeaderFollower超半数返回写入成功则返回写入成功,反之失败。
  • 读请求:所有节点均可以接收读请求。

5       ZooKeeper功能

  • 命名服务:各服务注册到ZK,在ZK上的路径是唯一的,即可充当其命名;此外,顺序编号节点也提供了唯一编号,可用作命名。
  • 配置管理:发布者将配置发送到ZK,由ZK通知到各个相关组件或节点。
  • 组员管理:集群Slave节点的信息都会注册到ZK上,Master可以通过ZK统一管理。
  • 分布式锁:将某个znode看做锁,或某个znode下创建临时顺序编号节点,编号最小者即为锁。
  • 分布式队列:往znode中按需写入数据,创建消息节点。
  • 高可用:其他Active-Standby部署的组件,将自身信息注册到ZK上。一旦Active组件异常,ZK通知Standby节点升主。例如NameNodeHMasterYarn RM等。

6       参考

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。