分布式资源调度框架YARN

一.YARN概述

yarn的核心思想是将资源管理和任务的监控和调度分离

  • 通过的资源管理系统,可为不同的应用(MapReduce.Spark,Flink等)提供统一的资源管理和调度
  • 它的引入为集群在利用率.资源统一管理和数据共享等方面带来了巨大好处

二.YARN的基本构架核心组件

1.yarn的构架是master/slaves的主从构架

  • master:ResourceManager 全局资源管理
    负责集群的全局统一资源管理,调度,分配
  • slaves:NodeManager 节点资源管理器
    启动了NodeManager进程的节点
    负责管理节点的资源及使用情况
    2.yarn的核心组件(包含ResourceManager和NodeManager)
  • Application
  • Container
    分布式资源调度框架YARN

三.ResourceManager

1.ResourceManager 组成

  • ResourceScheduler 资源调度器,根据节点的容量.队列情况,为应用程序分配资源
  • Application Manager 应用程序管理器,负责接收Client端传输的job请求

2.ResourceManager功能

  • 处理客户端的请求
  • 监控Nodemanager
  • 启动和监控ApplicationMaster,进行必要的重启
  • 整个系统的资源分配和调度

四.Nodemanager

Nodemanager的功能

  • 本节点上的资源管理和任务管理
  • 定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行情况
  • 接收和处理来自ResourceManager的Container启动和停止的各种命令
  • 处理来自ApplicationMaster的指令,比如启动MapTask和RedeceTask指令

五.ApplicationMaster

ApplicationMaster功能

  • 每一个应用程序对应一个ApplicationMaster,负责单个应用程序的管理
  • 负责数据切分
  • 为应用程序向ResourceManager申请资源(Container),并分配内部任务(MapTask和ReduceTask)
  • 与NodeManager通信来启动/停止任务,Task都是运行在Container中
  • 负责任务的监控和容错.当某些Task运行出错,进行容错处理

六.Container

  • Container是YARN中的资源抽象,封装了某个节点上的多维资源,如内存,CPU,磁盘,网络等
  • Container类似于一个虚拟机,可以在上面执行任务

七.YARN的工作机制

分布式资源调度框架YARN

八.YARN上提交MapReduce程序

分布式资源调度框架YARN
启动JobHistoryServer
JobHistoryServer:作业历史服务
记录在yarn中调度的作业历史运行情况
启动JobHistoryServer:
命令位置:$HADOOP_HOME/sbin/mr-jobhistory-daemon.sh
启动命令(集群中每台都执行)
mr-jobhistory-daemon.sh start historyserver
验证 jps查看进程 存在JobHistoryServer进程证明启动成功
分布式资源调度框架YARN

九.YARN资源调度器

目前hadoop作业调度器有三种

  • FIFO:先进先出调度器
  • Capacity Scheduler:容器调度器
  • Fair Scheduler:公平调度器
    默认的作业调度器可以再yarn-default.xml文件中查看,属性如下
  • yarn.resourvemanager.scheduler.class
  • Hadoop版本2.6.0-cdh5.14.2的默认调度器是公平调度器

十.YARN常用命令

1.任务管理

  • 查看正在运行的任务
    yarn application -list
  • 杀掉正在进行的任务
  • yarn application -kill 任务id

2.节点管理

  • 查看节点列表
    yarn node -list
  • 查看节点状态
    yarn node -status 节点id