Hadoop入门——YARN

1.YARN简介

  Apache YARN(Yet Another Resource Negotiator),是Hadoop集群的资源管理系统,从Hadoop 2.x开始引入,由于YARN具有足够的通用性,因此可以支持其他的分布式计算框架(如MapReduce、Spark等)。YARN通过两类长期运行的守护进程提供自己的核心服务:资源管理器(Resource Manager)和节点管理器(Node Manager)。

  • Resource Manager:管理集群资源,核心,主节点
  • Node Manager:启动和监控容器,运行在节点上,容器是用于执行应用的进程,与Resource Manager汇报,管理Container生命周期
  • Container:计算框架中的角色都以Container表示,默认Node Manager启动线程监控Container大小,超出则申请资源调度

2.YARN运行机制

Hadoop入门——YARN_第1张图片
图1 YARN应用的运行机制

在YARN上运行一个应用有以下步骤:

  1. 运行一个Application Master进程
  2. 在资源管理器中找到一个能够在容器中启动Application Master的节点管理器
  3. 若是运算简单,则在容器中运算将结果返回至客户端;也可以向资源管理器请求容器,进行分布式计算(MapReduce)

对于YARN的资源申请,YARN可以在任意时刻申请,也可以在需要时申请。Spark则是选择任意时刻申请资源模式,MapReduce分为两步,最开始时申请map任务容器,后期申请reduce任务容器。YARN应用生命周期一般有以下三种模型:

  1. 一个用户作业对应一个应用(MapReduce)
  2. 作业的每个工作流或每个用户对话对应一个应用(Spark)
  3. 多个用户共享一个长期运行的应用

3.MapReduce 1与YARN对比

  MapReduce 1中通过jobtracker和tasktracker两种守护进程控制作业执行。jobtracker有一个,tasktracker有多个。jobtracker通过调度tasktracker上运行的任务来协调所有系统上的作业,tasktracker在运行任务的同时将运行进度报告发送个jobtracker,jobtracker根据报告记录每项作业的整体运行情况。

  MapReduce 1中jobtracker同时负责作业调度和任务进度监控(跟踪任务、重启失败或迟缓的任务、记录任务),而在YARN中这些职责由不同的实体分担:资源管理器(Resource Manager)和application master;MapReduce 1中使用JobTracker负责存储已完成作业的作业历史,YARN中使用时间轴服务器(timeline server)。MapReduce 1与YARN组成比较如下:

表1 MapReduce 1与YARN组成比较
MapReduce 1 YARN
JobTracker 资源管理器、application master、时间轴服务器
TaskTracker 节点管理器
Slot 容器

相比于MapReduce 1,YARN有以下优点:

  1. 可扩展性(Scalability)
  2. 可用性(Availability)
  3. 利用率(Utilization)
  4. 多租户(Multitenancy)

4.YARN调度

  YARN中有三种调度器可用:FIFO调度器(FIFO Scheduler),容量调度器(Capacity Scheduler)和公平调度器(Fair Scheduler)。

(1)FIFO调度器

  FIFO调度器将应用放在队列中,按照顺序运行。该调度器简单易懂,但是不适合共享大集群。大集群中应用会占集群所有资源,所以每个应用必须等待调度,轮到自己的时候才会运行。

Hadoop入门——YARN_第2张图片
图2 FIFO调度器集群利用率

(2)容量调度器

  拥有一个独立的队列保证小作业已提交就能立即运行,由于队列容量是为队列中所有作业保留的,即预留一定的资源,因此容量调度器牺牲集群利用率。

Hadoop入门——YARN_第3张图片
图3 容量调度器集群利用率

(3)公平调度器

  公平调度器不需要为小作业预留资源,调度器会在所有运行的作业之间动态平衡资源。比如,在第一个大作业运行时,他会占用集群所有资源,第二个小作业再启动运行后,它会被分配集群一半的资源。

Hadoop入门——YARN_第4张图片
图4 公平调度器集群利用率

参考文献

[1] Tom While, Hadoop权威指南(第四版)[M].北京, 清华大学出版社, 2017.
[2] Benoy Antony, Konstantin Boundnink, Chryl Adams, et al. Hadoop大数据解决方案[M].北京, 清华大学出版社, 2017.

你可能感兴趣的:(大数据)