分布式资源调度框架YARN

本文详细介绍了YARN作为Hadoop 2.x的资源管理系统,其核心思想是将资源管理和任务调度分离,提供统一资源管理和调度。内容涵盖YARN的基本架构、核心组件,包括ResourceManager和NodeManager,以及ApplicationMaster和Container的角色。此外,还阐述了YARN的工作机制、MapReduce在YARN上的提交过程、JobHistoryServer的启动和资源调度器的类型。最后,列举了一些常用的YARN管理命令。

YARN概述

YARN是hadoop2.X版本引入的集群资源管理系统
YARN(Yet Another Resource Negotiator)核心思想是将资源管理和任务的监控和调度分离

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

YARN的基本架构核心组件

  1. YARN的架构是master/slaves的主从架构
  • master:ResourceManager–>全局资源管理
     负责集群全局统一的资源管理、调度、分配
  • slave:NodeManager–>节点资源管理器
      启动了NodeManager进程的节点
      负责管理节点的资源及使用情况
  1. YARN核心组件(包含ResourceManager和NodeManager)
    ApplicationMaster
    Container

YARN架构核心组件-ResouceManager

  1. ResourceManager组成
  • ResourceScheduler–>资源调度器,根据节点的容量、队列情况,为应用程序分配资源
  • Application Manager–>应用程序管理器,负责接受Client端传输的job请求
  1. ResourceManager功能
  • 处理客户端请求
  • 监控NodeManager
  • 启动和监控ApplicationMaster,进行必要的重启
  • 整个系统的资源分配和调度
  1. NodeManager功能
  • 本节点上的资源管理和任务管理
  • 定时向ResourceManager汇报本节点上的资源使用情况和各个Container的运行情况
  • 接收和处理来自ResourceManager的Container启动和停止的各种命令
  • 处理来自ApplicationMaster的指令,比如启动MapTask和ReduceTask指令
  1. ApplicationMaster功能
  • 每个应用程序对应一个ApplicationMaster,负责单个应用程序的管理
  • 负责数据切分
  • 为应用程序向ResourceManager申请资源(Container),并分配内部任务(MapTask和ReduceTask)
  • 与NodeManager通信来启动/停止任务,Task都是运行在Container中的
  • 负责任务的监控和容错,当某些Task运行出错,进行容错处理
  1. Container是YARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等
  • Container类似于java中的类,可以里面的方法

YARN的工作机制

在这里插入图片描述

YARN上提交MapReduce程序

运行框架自带的MapReduce程序

  • Jar位置
    $HADOOP_HOME/share/hadoop/mapreduce
  • Jar名称
    hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar
  • 执行wordCount
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.14.2.jar wordcount /user/data  /user/out

使用YARN WebUI查看任务执行情况

  • YARN整体资源情况
  • Mapper运行情况详细信息
  • Reducer运行情况详细信息
  • 任务历史信息

启动JobHistoryServer

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

YARN的资源调度器

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

YARN常用命令

  1. 任务管理
  • 查看正在运行的任务
    yarn application -list
  • 杀掉正在运行的任务
    yarn application -kill 任务id
  1. 节点管理
  • 查看节点列表
    yarn node -list
  • 查看节点状态
    yarn node -status 节点ID
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值