yarn的资源调度
前言
- Hadoop作为分布式计算平台,从集群计算的角度分析,Hadoop可以将底层的计算资源整合后统一分配到集群中的计算节点,从而达到分布式和并行计算的目的,最终完成任务的高效执行。
- 这一核心功能就是作业调度要做的事情。在调度机制中涉及三个核心问题:
1.计算资源的组织。
2.用户作业的选择策略。
3.任务的分配策略。
三种主要调度器
- 调度器主要包括 FIFO调度器,公平调度器,容量调度器。
- 简单介绍
-
FIFO调度器
按照提交的先后顺序排列在队列中按序执行。 -
公平调度器
公平度:反映作业已占用计算资源与它应该分得的计算资源两者落差的一个测度,公平度值越大越需要被调度。作业在调度时 取决于公平度,作业的权重以及其所属的资源池pool的权重。
-
容量调度器:保证将 内存资源需求高的作业 的相关任务 指派到具有充足内存资源的TaskTracker上执行。
-
调度策略对比
调度器 | 队列选择 | 作业选择 | 任务分配 |
---|---|---|---|
FIFO调度器 | 仅有一个队列,不需要进行队列选择 | 按照作业优先级和提交时间,先进先出 | Hadoop以心跳时间片为单位进行轮询分配任务,在一次心跳时间FIFO调度器最多可以分配多个Map,1个Reduce作业,多个Map作业分配不能超过平均负载 |
公平调度器 | 依据Fair Sharing 公平排序算法对队列进行排序 | 按照作业权重公平共享资源 | 如果配置assign Multiple为true,则每次心跳最多分配1个Map和1个Reduce作业 |
容量调度器 | 依据队列的资源占用率优先选择调度资源占用率低的队列 | 在队列内部使用FIFO原则进行调度 | 每次心跳最多分配1个Map和1个Reduce作业 |