【hadoop】yarn资源调度

在hadoop1.0中

运行的时候有两个进程

  1. jobtracker 整个计算程序的老大 ( 负责资源调度,随机调度,监控程序运行的状态 ,启动运行程序)
  2. tasktracker
    强行将计算资源分为两部分,mapslot 和 reduceslot, 每一部分资源只能跑对应的任务,资源并没有

缺陷:

  1. 单点故障
  2. 多有的程序资源调度是随机的(会造成资源浪费)
  3. 会造成jobtracker的运行压力过大

在hadoop2.0中mapreduce —> mapreduce + yarn

在hadoop2.0中

yarn在启动的时候有两个进程:

  1. resourcemanager 整个资源调度的老大

    • 接收客户端的请求(运行程序的请求)
    • 接收nodemanaser的状态报告(包括nodemanager的资源状态,存活状态)
    • 负责整个计算程序的资源调度(调度的运行资源和节点)
  2. nodemanager 是负责真正的提供资源,运行计算程序的

    • 接收resourcemanager的命令
    • 提供资源运行计算程序

yarn启动计算以及资源调度:

  • MRAppMaster:是单个计算程序的老大,
    1. 主要负责帮助档期计算程序向resourcemanager申请资源
    2. 负责启动maptask 和 reducetask任务
    3. 负责监控maptask和reducetask的运行进度
  • ASM(aplications manager)所有应用程序的管理者:
    (ASM是resourcemanager中的)
    1. 主要负责调度应用程序
  • container:抽象的资源容器(封装着一定的cpu 、io、网络资源)是运行maptask、reducetask 等的运行资源单位,一个maptask 最终会在一个容器中运行,当容器启动的时候显示的就是yarnchild
  • scheduler:调度器(yarn的ResourceManager的组件)
    调度的是什么时候计算那个计算程序,默认有三种调度器
    1. FIFO(先进先出):先提交的程序先执行,内部维护一个队列
    2. FARI(公平调度器): 大家平分资源运行 内部维护一个队列
      假设初始有一个任务在执行,则该任务占的资源 100%
      再来一个任务 ,则每个任务占50%
      再来一个 每个占33.3%
    3. CAOICITY(计算能力调度器):内部维护多个队列
      可以按需进行配置资源,多个队列之间进行资源分配(例如:两个任务的计算任务不同,可以用两个队列进行划分,任务量大的分配的资源多一点,任务少的相对少一点,在每个队列中执行先进先出)

yarn的资源调度

  1. 客户端向ResourceManager发送请求
  2. ResourceManager中的ASM经过一系列的检查之后,将请求转发给Scheduler(调度器)
  3. 调度器给当前job分配资源,随机分配一个NodeManager
  4. ResourceManager在分配的NodeManager中先开启一个container(容器),再开启一个MrAppMaster
  5. MrAppMaster向ResourceManager申请资源,为maptask和reducetask运行使用
  6. ResourceManager向MrAppMaster 返回可供运行的NodeManager节点
  7. MrAppMaster在所有返回的NodeManager中先开启一个container(容器),再运行maptask任务
  8. 所有的maptask都会向MrAppMaster汇报自己的运行状态和进度
  9. 当所有的maptask的任务完成80%的时候,MrAppMaster开启reducetask任务(与maptask任务一样)
  10. 先在各个节点上开启一个container(容器),等到所有的maptask执行完成的时候,运行reducetask任务
  11. 在MrAppMaster检测到所有的任务都执行完成的时候,MrAppMaster进行资源回收并向ResourceManager申请注销自己

符一张图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值