概述

Yarn中有三种任务调度器:FIFO调度器(FIFO Scheduler)、容量调度器(Capacity Scheduler)、公平调度器(Fair Scheduler)。

任务调度器介绍

1.FIFO调度器

FIFO调度器将应用放在一个队列里,按照“先进先出”的原则为应用分配资源。

优点:简单易用,不需要任何配置;

缺点:不适合共享集群。大应用占用集群所有资源,所以每个应用只能排队等待,即使是秒级完成的应用,这样不利于集群的合理利用。

2.容量调度器

https://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html

可以通过容量调度器配置多个队列,并规定好每个队列的资源占比,应用在每个队列内部再遵循FIFO策略。

正常情况下,每个队列不会抢占其他队列的资源,但当自己队列中资源不能满足应用的需求,而其他队列又有空闲资源。此时,容量调度器会把空闲资源分配给应用,即使已经超过应用所在队列的资源占比。

容量调度器可以固定每个队列的资源占比,使每个队列不会使用超过本队列设置的值,也可以采用如上面所说的类似动态分配原则。这要取决于capacity-scheduler.xml的配置信息。

3.公平调度器

https://hadoop.apache.org/docs/r2.6.5/hadoop-yarn/hadoop-yarn-site/FairScheduler.html

从名称可以看出,公平调度器是为了各应用都能公平分配资源。那公平调度器是如何做到的呢,这里引用《Hadoop权威指南》中的解释:

想象两个用户A和B,分别拥有自己的队列(见下图)。A启动一个作业,在B没有需求时A会分配到全部可用资源;当A的作业仍在运行时B启动一个作业,一段时间后,按照我们先前看到的方式,每个作业都用到了一半的集群资源。这时,如果B启动第二个作业且其他作业仍在运行,那么第二个作业将和B的第一个作业共享资源,因此B的每个作业将占用四分之一的集群资源,而A扔继续占用一半的集群资源。最终的结果就是资源在用户之间实现了公平共享。

总结

FIFO调度器一般不用;

容器调度器是apache版本的默认调度器;

公平调度器是CDH版本的默认调度器;

调度器参数高度灵活可配置,详细可点击以上链接参照官网配置。

【Hadoop2.6】Yarn中任务调度器相关推荐

  1. 详解Yarn中三种资源调度器(FIFO Scheduler、Capacity Scheduler、Fair Scheduler)和配置自定义队列实现任务提交不同队列

    前言 在前面 Yarn的基本架构和作业提交全流程 一文中提到,当ResourceManager收到客户端Client的请求之后会将该作业job添加到(默认的)容量调度器中,然后再由某一个空闲的Node ...

  2. Hadoop2.6.0中YARN底层状态机实现分析

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/beliefer/article/details/51190842 前言 Hadoop2.x.x版本的 ...

  3. Hadoop2.0 YARN

    前言:Hadoop2.0中的YARN YARN产生背景 第一代MapReduce(MRv1)的局限性 扩展性差.MRv1中JobTracker兼备集群资源的管理和作业管理的调度和控制两大功能,使得Jo ...

  4. YARN中的失败分析

    YARN中的失败分析 对于在YARN中运行的MapReduce程序,需要考虑以下几种实体的失败 任务.application master.节点管理器.资源管理器 1. 任务运行失败 任务运行失败类似 ...

  5. 基于单片机的简单的任务调度器

    近来工作之余,研究了一下APM的源码. APM源码连接https://pan.baidu.com/s/17Dg1oEJT_fj12DM1BmZWxA 发现源码中有一个简单的任务调度器,不太重要的任务都 ...

  6. java 分布式任务_一个简单的基于 Redis 的分布式任务调度器 —— Java 语言实现...

    折腾了一周的 Java Quartz 集群任务调度,很遗憾没能搞定,网上的相关文章也少得可怜,在多节点(多进程)环境下 Quartz 似乎无法动态增减任务,恼火.无奈之下自己撸了一个简单的任务调度器, ...

  7. 深入理解Hadoop YARN中的Container概念

    在学习Hadoop  YARN-Hadoop 2.0新引入的通用资源管理系统过程中,总会遇到Container这一概念,由于中文资料的缺乏,很多人对Container这一概念仍非常的模糊.它与Linu ...

  8. hadoop yarn 获取日志_在 YARN 中简化用户日志的管理和使用

    Hadoop 的用户日志有很多的用途, 首先最重要的是, 它们能用来调试 MapReduce 应用(application)的问题, 可能是应用本身的问题, 或者在极少数的情况下, 当在集群中执行应用 ...

  9. 从零入门 FreeRTOS 操作系统之任务调度器

    从零入门 FreeRTOS 操作系统之任务调度器 1 任务调度器的概念 FreeRTOS 中提供的任务调度器是基于优先级的全抢占式调度:在系统中除了中断处理函数.调度器上锁部分的代码和禁止中断的代码是 ...

最新文章

  1. sourceTree
  2. python封装方法有几种_Python打包exe文件方法汇总【4种】
  3. 中科院计算机全国重点实验室,国家重点实验室
  4. QML基础类型之enumeration
  5. Hadoop -- ES -- CURD
  6. windows 下cmd命令行的替换工具cmder
  7. 第六节:又一种新的数据类型:元组Tuple
  8. 结构体含有指针的写入文件
  9. 【嵌入式实验】《嵌入式数据库 sqlite 移植及使用》
  10. 《机器学习实战》第二章学习笔记:K-近邻算法(代码详解)
  11. python render_requests-html库render的使用
  12. 实现MySQL导入sql脚本
  13. return可以返回多个值_JDK10的新特性:var泛型和多个接口实现
  14. atitit.故障排除--- 当前命令发生了严重错误。应放弃任何可能产生的结果sql server 2008
  15. jmeter压力测试
  16. XenCenter 创建 New Storage Repository
  17. Tracking Attackers: Honeypot, Part 1 (Honeyd)
  18. 【重识云原生】第三章云存储第一节——分布式云存储总述
  19. 计算机专业考研2021,2021考研:计算机考研方向,了解一下
  20. unity3d 火焰燃烧

热门文章

  1. python深拷贝和浅拷贝机制
  2. Python学习入门基础教程(learning Python)--6 Python下的list数据类型
  3. 用curl访问HTTPS站点并登录
  4. delphi里的 .pas .dcu .dpk .dpl .res .cfg......分别是什么文件
  5. [转载]Qt之自定义界面(二)添加最小化、关闭按钮、添加背景
  6. Spring读取xml配置文件的原理与实现
  7. 启动类的@SpringBootApplication探究
  8. 再谈Java中的引用
  9. ortp编程示例代码
  10. Vue 中的 v-cloak 作用及用法