Hadoop学习(三)-YARN
YARN是hadoop的资源调度平台。
1. YARN的基本架构
YARN由以下几个组件组成。Resource Manager、Node Manager、Application Master和Container组成。
- Resource Manager :RM是一个全局的资源管理器。负责整个系统的资源管理和任务调度。核心组件由两个。调度器Scheduler 和 应用任务管理器ASM(Applications Master)
Scheduler 负责将资源分配给应用程序。ASM 负责启动、监控AM(Application Master)
- Node Manager:
- 周期型的向RM汇报节点资源情况和Container运行状态。
- 接收AM的命令。启动、停止Container。
- Application Master:用户提交每个任务都包含一个AM。AM的功能主要由:
- 切分数据。
- 为应用程序向RM申请资源(container)
- 与NM通信,启动、停止任务
- 监控任务运行状态。提供容错机制。
- Container:
Container是资源的抽象(内存和CPU)。
2. 作业提交流程
用户向YARN提交任务后,YARN分为两个阶段运行该应用程序。启动AM和AM创建应用程序、为任务申请资源、监控任务执行过程直到任务完成。
创建AM
1) 客户端向YARN提交应用程序,并请求RM分配资源
2) RM开启一个Container,并在上面运行AM。
AM创建应用程序
3) AM向RM中的ASM注册。
4) AM向RM申请和获取资源。
5) AM获得资源后,将和资源对应的NM建立连接。
6) 启动任务,对应的Container会在AM处注册。
7) 各个任务向AM周期型汇报执行情况。
8) AM运行完成后向RM注销并关闭自己
3. 【需要完善】资源调度器
HADOOP的作业调度器有三种。先进先出调度器FIFO,容量调度器(capacity scheduler)和公平调度器(fair scheduler)。默认为容量调度器。
(1) FIFO :队列保存job,先来的任务先执行。
(2) Capacity Scheduler:
支持多个队列,每个队列采用先进先出调度策略。
(3) Fair Scheduler: