目录
1. FIFO Scheduler (First Input First Output)
一、概述
什么是资源?
资源指的是硬件资源, 例如: CPU, 内存, 磁盘, 声卡, 网卡, 显卡...
什么是调度, 目的是什么?
调度指的是当程序执行的时候, 所需资源进行集中管理分配, 目的是: 提高资源利用率.
角色划分
ResourceManager角色: 主节点
1. 负责管理整个集群的资源.
2. 负责任务的接收.
3. 负责资源的调度 和 分配.
nodemanager角色:从节点
1. 管理本机的资源.
2. 负责具体任务的执行.
Yarn是大数据分布式集群 统一任务接收 和 资源调度器, 怎么理解统一呢?
Yarn是负责调度计算任务的, 至于计算任务是什么, Yarn根本就不关心, 只要符合Yarn规范即可.即: 无论是MapReduce计算任务, Spark计算任务, Flink计算任务, Yarn都能调度.
二、Yarn的执行流程
三、Yarn的三种调度策略
1. FIFO Scheduler (First Input First Output)
先进先出调度器, 类似于: 单车道, 目前几乎不用.
优点
每个计算任务都独享集群 100%的资源.
缺点
当小任务前有大任务在执行时, 小任务可能迟迟无法执行结束, 必须等待大任务执行完毕.
2. Capacity Scheduler
容量调度器, 类似于: 多车道. Apache Hadoop(社区版)默认用的调度策略.
优点
1. 支持多任务并行执行.
2. 且支持资源借调.
缺点
1. 可能存在资源无法归还的情况.
2. 存在资源浪费的情况, 即: 任务无法独享集群100%的资源.
3. Fair Scheduler
公平调度器, 类似于: 潮汐车道. 商业版Hadoop, Yarn的调度策略就是这一种.
优点
1. 支持多任务并行执行.
2. 且支持资源借调.
当有第1个任务执行的时候, 它独占集群100%的资源,
当有第2个任务执行的时候, 它(第1个任务)会分一半的资源给到第2个任务.
第有第3个任务执行的时候, 会再分一半的资源出去, 即: 三个任务的资源使用率都是 33.3...%
缺点
当有大量小任务执行的时候, 存在大任务迟迟无法执行结束的情况.
总结
以上就是今天的内容,本文介绍了Hadoop集群中Yarn的相关原理.