Hadoop资源调度器

    目前,Hadoop作业调度器主要有三种:FIFO、Capacity Scheduler和Fair Scheduler。Hadoop2.7.2默认的资源调度器是Capacity Scheduler。
具体设置详见:yarn-default.xml文件
    The class to use as the resource scheduler.
    yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

1.先进先出调度器(FIFO)
Hadoop资源调度器_第1张图片

2. 容量调度器( Capacity Scheduler
Hadoop资源调度器_第2张图片

3. 公平调度器( Fair Scheduler
Hadoop资源调度器_第3张图片

4.总结
    随着Hadoop版本的演化,Fair Scheduler和Capacity Scheduler的功能越来越完善, 包括层级队列组织方式、资源抢占、批量调度等,也正因如此,两个调度器同质化越来越严重, 目前看了,两个调度器从设计到支持的特性等方面非常接近, 而由于Fair Scheduler支持多种调度策略,现在看来,可以认为Fair Scheduler具备了Capacity Scheduler具有的所有功能。
    下表从多个方面对比了Hadoop 2.0(YARN)中这两个调度器的异同,通过这个表读者能更好地理解Capacity Scheduler与Fair Scheduler的相同点和不同点。
Hadoop资源调度器_第4张图片
    其中,FIFO、FAIR和DRF分别是指 先来先服务、公平调度 和 主资源公平调度,具体含义如下:
    FIFO:先按照优先级高低调度,如果优先级相同,则按照提交时间先后顺序调度,如果提交时间相同,则按照(队列或者应用程序)名称大小(字符串比较)调度
    FAIR:按照内存资源使用量比率调度,即按照used_memory/minShare大小调度(核心思想是按照该调度算法决定调度顺序,但还需考虑一些边界情况)
    DRF:借鉴了Mesos中的设计策略,按照主资源公平调度算法进行调度,具体已经在Apache Mesos调度器机制进行了介绍。
    实际上,Hadoop的调度器远不止以上三种,最近,出现了很多针对新型应用的Hadoop调度器。


你可能感兴趣的:(#,Hadoop)