Hadoop的三种调度器FIFO、Capacity Scheduler、Fair Scheduler(转载)
目前Hadoop有三种比较流行的资源调度器:FIFO 、Capacity Scheduler、Fair Scheduler。目前Hadoop2.7默认使用的是Capacity Scheduler容量调度器。
一、FIFO(先入先出调度器)
Hadoop1.x使用的默认调度器就是FIFO。FIFO采用队列方式将一个一个job任务按照时间先后顺序进行服务。比如排在最前面的job需要若干maptask和若干reducetask,当发现有空闲的服务器节点就分配给这个job,直到job执行完毕。

二、Capacity Scheduler(容量调度器)
Hadoop2.x使用的默认调度器是Capacity Scheduler。
1、支持多个队列,每个队列可配置一定量的资源,每个采用FIFO的方式调度。
2、为了防止同一个用户的job任务独占队列中的资源,调度器会对同一用户提交的job任务所占资源进行限制。
3、分配新的job任务时,首先计算每个队列中正在运行task个数与其队列应该分配的资源量做比值,然后选择比值最小的队列。比如如图队列A 15个task,20%资源量,那么就是15%0.2=70,队列B是25%0.5=50 ,队列C是25%0.3=80.33 。所以选择最小值队列B。
4、其次,按照job任务的优先级和时间顺序,同时要考虑到用户的资源量和内存的限制,对队列中的job任务进行排序执行。
5、多个队列同时按照任务队列内的先后顺序一次执行。例如下图中job11、job21、job31分别在各自队列中顺序比较靠前,三个任务就同时执行。

三、Fair Scheduler(公平调度器)
1、支持多个队列,每个队列可以配置一定的资源,每个队列中的job任务公平共享其所在队列的所有资源。
2、队列中的job任务都是按照优先级分配资源,优先级越高分配的资源越多,但是为了确保公平每个job任务都会分配到资源。优先级是根据每个job任务的理想获取资源量减去实际获取资源量的差值决定的,差值越大优先级越高。

Hadoop的三种调度器FIFO、Capacity Scheduler、Fair Scheduler(转载)的更多相关文章
- 第1节 yarn:14、yarn集群当中的三种调度器
yarn当中的调度器介绍: 第一种调度器:FIFO Scheduler (队列调度器) 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源 ...
- YARN的三种调度器的使用
YRAN提供了三种调度策略 一.FIFO-先进先出调度器 YRAN默认情况下使用的是该调度器,即所有的应用程序都是按照提交的顺序来执行的,这些应用程序都放在一个队列中,只有在前面的一个任务执行完成之后 ...
- MapReduce多用户任务调度器——容量调度器(Capacity Scheduler)原理和源码研究
前言:为了研究需要,将Capacity Scheduler和Fair Scheduler的原理和代码进行学习,用两篇文章作为记录.如有理解错误之处,欢迎批评指正. 容量调度器(Capacity Sch ...
- 【Hadoop离线基础总结】Apache Hadoop的三种运行环境介绍及standAlone环境搭建
Apache Hadoop的三种运行环境介绍及standAlone环境搭建 三种运行环境 standAlone环境 单机版的hadoop运行环境 伪分布式环境 主节点都在一台机器上,从节点分开到其他机 ...
- redis-缓存失效三种策略(FIFO 、LRU、LFU)
缓存失效策略(FIFO .LRU.LFU三种算法的区别) 当缓存需要被清理时(比如空间占用已经接近临界值了),需要使用某种淘汰算法来决定清理掉哪些数据.常用的淘汰算法有下面几种: FIFO:First ...
- Spring Boot实践——三种拦截器的创建
引用:https://blog.csdn.net/hongxingxiaonan/article/details/48090075 Spring中的拦截器 在web开发中,拦截器是经常用到的功能.它可 ...
- jvm三的三种类加载器
JVM有三种类加载器:bootstrap负责加载系统类,extclassloader负责加载扩展类,appclassloader负责加载应用类.他们主要是分工不一样,各自负责不同的区域,另外也是为了实 ...
- 005 Hadoop的三种模式区别
1.本地模式 -默认模式. -不对配置文件进行修改. -使用本地文件系统,而不是分布式文件系统. -Hadoop不会启动NameNode.DataNode.ResourceManager.NodeMa ...
- JVM核心机制(类加载器、三种类加载器、代理加载模式、双亲委派机制
随机推荐
- Django之auth认证
Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的 ...
- 《linux就该这么学》课堂笔记06 编写shell脚本、if、for
1.1.脚本的两种方式 交互式(Interactive):用户每输入一条命令就立即执行. 批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令. 1. ...
- Dockerfile(从无到有创建镜像)
本文原始地址:https://sitoi.cn/posts/43818.html 结构 DockerFile分为四部分组成: 基础镜像信息 维护者信息 镜像操作指令 容器启动时执行指令 基础镜像信息 ...
- HAProxy的基础配置详解
HAProxy是高性能的企业级负载均衡调度器,同时支持四层TCP和七层HTTP协议的负载均衡调度,以及支持基于cookie的持久性,支持正则表达式及web状态统计.自动故障切换等优点,因此广泛被应 ...
- Pytorch之Dataparallel源码解析
之前对Pytorch 1.0 的Dataparallel的使用方法一直似懂非懂,总是会碰到各种莫名其妙的问题,今天就好好从源头梳理一下,更好地理解它的原理或者说说下步骤. 源码地址: https:// ...
- Python 类的继承__init__() takes exactly 3 arguments (1 given)
类(class),可以继承基类以便形成具有自己独特属性的类,我们在面向对象的编程中,经常用到类及其继承,可以说没有什么不是类的,今天我们就来详细探讨一下在python中,类的继承是如何做的. 我们假设 ...
- bind的模拟实现
bind 一句话介绍 bind: bind() 方法会创建一个新函数.当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数.( ...
- param动作
param动作通常与forword一起使用 <jsp:forword page="目标页面" > <jsp:param value="参数值" ...
- Async/await promise实现
An async function can contain an await expression that pauses the execution of the async function an ...
- Numpy | 03 数据类型
numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型. 下表列举了常用 NumPy 基本类型: 名称 描 ...