Yarn与Zookeeper的介绍

Yarn--三大调度策略

FIFO(先进先出): 目前几乎已经没有人使用了.

类似于: 单行道.

好处:

每个计算任务能独享集群100%的资源.

弊端:

不能并行执行, 如果大任务过多, 会导致小任务执行时间过长.

Capacity(容量调度): 我们用的Apache Hadoop(社区版Hadoop), Yarn的底层默认用的就是这种调度器.

类似于: 多车道.

好处:

  1. 可以当多任务, 并行执行, 提高计算效率.

  2. 可以借调资源.

弊端:

  1. 每个计算任务不能独享集群100%的资源, 存在着资源闲置(浪费)的情况.

  2. 如果出现了资源借调的情况, 可能也会出现无法"及时"归还资源的情况.

Fair(公平调度): FaceBook推出的, 后续要用的CDH(Cloudera公司提供的Hadoop, 商业版)的Yarn调度器就是这个.

类似于: 潮汐车道.

好处:

  1. 多任务可以并行执行, 提高计算效率.

  2. 如果只要1个任务, 则它可以共享集群100%的资源.

弊端:

每个任务获取集群的资源, 都是公平的, 均分的, 例如: 1个任务, 就占用 100%资源,

2个任务, 各占50%的资源

3个任务, 各占33.3333....%的资源

.......

如果小任务过多, 会导致大任务迟迟无法执行结束的问题.

Zookeeper--简介

概述:

它是一款非常好用的 大数据分布式协调服务组件, 主要是用来帮助我们管理大数据进群的, 例如: 主备切换, 选举机制, 全局数据一致性...

吉祥物是: 1个拿着铁锹的小人.

本质:

ZK本身也是1个小型的分布式文件存储系统, 采用ZNode节点的方式来存储数据, 底层是: 树形结构. 每个节点的大小不能超过: 1MB.

回顾: 树形结构特点:

  1. 有且只能有1个根节点.

  2. 每个节点都有若干个子节点及1个父节点(根节点除外)

  3. 没有子节点的节点称之为: 叶子节点.

Znode节点的分类:

永久(无序)节点: Persistent

客户端的会话结束, 节点依旧存在.

临时(无序)节点: Ephemeral

客户端的会话结束, 节点小时(会被自动删除).

永久有序节点:

Persistent + Sequential

客户端的会话结束, 节点依旧存在, 会在节点名后边加10位数字, 升序递增. 0000000000, 0000000001...

临时有序节点:

Ephemeral + Sequential

客户端的会话结束, 节点消失, 会在节点名后边加10位数字, 升序递增. 0000000000, 0000000001...

细节:

临时节点不能有子节点.

Zookeeper--架构介绍

Leader: 主节点

  1. 管理整个ZK集群, 负责: 全局数据一致性.

  2. 负责处理 数据事务操作(增, 删, 改)

  3. 负责转发 数据非事务操作(查) 给 Follower

Follower:

  1. 实时和Leader同步, 保证: 全局数据一致性.

  2. 负责处理 数据非事务操作(查)

  3. 负责转发 数据事务操作(增, 删, 改) 给 Leader

  4. 有选举权.

ObServer:

除了没有选举权, 剩下的和 Follower一样. 大公司, 大规模集群, 才会考虑部署ObServer.

Zookeeper--Shell操作

常用Shell命令:

help -- 查看ZK支持的所有Shell命令

create -s -e path data -- Sequential(有序), Ephemeral(临时), 创建节点.

delete path version -- 删除节点, 只能删除(叶子节点)

rmr path -- 删除节点及其字节

set path data version -- 修改节点的内容

get path watch -- 查看节点内容

ls path watch -- 查看节点简单信息

ls2 path watch -- 查看节点详细信息

history -- 查看历史命令

redo 历史命令编号 -- 根据编号, 重新执行对应的 命令.

Zookeeper--数据模型

  1. Znode兼具有文件 和 目录的功能, 既能存储数据, 也能有子级.

  2. Znode操作具有原子性, 无论在哪台机器修改了节点值, 其它机器再查也是修改后的.

  3. Znode存储数据有大小限制, 每个节点不超过1MB.

细节: 我们用ZK不是用它存数据的功能, 而是管理大数据集群.

  1. Znode节点必须通过 绝对路径的写法才可以获取, 即: /aa

Zookeeper--特点

  1. 全局数据一致性.

  2. 可靠性.

  3. 顺序性.

  4. 数据更新原子性.

  5. 实时性.

Zookeeper--watch监听机制

  1. 先注册, 后监听.

  2. 当事件触发后, 会将触发结果告知 监听者.

  3. 异步发送监听结果的.

  4. 监听是一次性触发, 之后在触发响应的内容, 也不会给 监听者发送消息了.

Zookeeper--选举机制

过半原则, 某个机器获取的票数超过集群总数的一半, 它就是Leader, 剩下的是Follower.

选举机制的方式:

新集群: 参考myid值, 优先投票给myid值大的机器.

旧集群: 参考(节点)最后一次更新的事务id, 优先投票给事务id大的节点(机器), 如果事务id一致, 则参考 myid值, 投票给myid值大的机器.

相关推荐
云祺vinchin10 分钟前
桌面云如何高效备份?某科技公司灾备建设实战
云原生·数据安全·数据备份·无代理备份·桌面云
阿里云云原生2 小时前
从 NL2SQL 到自动巡检:乐檬如何打造面向多租户 SaaS 的全链路可观测性体系?
云原生
阿里云云原生2 小时前
Agent 观测与优化开发者摸底报告
云原生·agent
探索云原生4 小时前
Kueue + HAMi vGPU 实战:显存与算力配额管理
docker·ai·云原生·kubernetes·gpu
玉&心6 小时前
通过helm在k8s上面一键部署前端和后端代码
云原生·容器·kubernetes·helm
星恒讯工业路由器7 小时前
分布式光伏站点分散难联网?4G/5G点对多点自组网方案解析
分布式·物联网·5g·分布式光伏·自组网·点对多点通信·4g/5g
qq_452396238 小时前
第十一篇:《eBPF 进阶:自定义探针与生产级可观测性部署》
分布式
重庆小透明8 小时前
Kafka 完全指南:从基础组件到核心原理(包含面试题)
java·分布式·微服务·架构·kafka
容器魔方8 小时前
议程一览 | 华为云亮相 KubeCon + CloudNativeCon China 2026
人工智能·云原生·容器·开源·华为云·云计算
瀛川9 小时前
Agent 换了 Pod,身份怎么办?拆解 Substrate 的 Actor Identity
人工智能·云原生