红帽家 记录技术与生活

YARN资源调度器

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统。

YARN关键组件:

  1. ResourceManager
  2. NodeManager
  3. ApplicationMaster
  4. Container等组件 ![[YARN资源架构.png]]

YARN工作机制 ![[YARN资源调度器-工作机制.png]]

资源调度器分类

  • FIFO:按照到达时间顺序,先到先服务
  • Capacity Scheduler:
    • 支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略
    • 为防止统一用户作业独占队列中的资源,该调度器会对统一用户提交的作业所占资源量进行限定
    • 首先,计算每一个队列正在运行任务数与应该分得的计算资源之间的比值,选这一个该比值最小的队列---最闲的
    • 其次,按照作业优先级和提交时间顺序,同时考虑用户资源量限制和内存限制对队列内任务排序
    • 三个队列同时按照任务的先后顺序依次执行
  • Fair Scheduler:按照缺额排序,缺额大者优先
    • 支持多队列多用户,每个队列中的资源量可以配置,同一队列中的作业公平共享队列中的所有资源

![[YARN-公平调度器.png]]

任务的推测执行

  • 作业完成时间取决于最慢的任务完成时间
  • 推测执行机制
    • 发现拖后腿任务,为其启动一个备份任务,谁先完成,用哪个结果
  • 执行推测任务的前提条件
    • 每个task只能有一个备份任务
    • 当前job已完成task必须不小于0.05(5%)
    • 开启推测执行参数设置,mapred-site.xml默认是打开的
      • mapreduce.map.speculative
      • mapreduce.reduce.speculative
  • 不能启用推测执行机制情况
    • 任务间存在严重的负载均衡
    • 特殊任务,比如任务向数据库中写任务
  • 算法原理 ![[YARN-算法运力.png]]

评论 (0)

还没有评论,来抢沙发吧~

无需注册,留下昵称即可评论。

支持 Markdown 基本语法(链接会自动加 nofollow);不支持图片、HTML、代码高亮。