Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法
先来先服务(FIFO)
Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。
FIFO比较简单,hadoop中只有一个作业队列,被提交的作业按照先后顺序在作业队列中排队,新来的作业插入到队尾。一个作业运行完后,总是从队首取下一个作业运行。这种调度策略的优点是简单、易于实现,同时也减轻了jobtracker的负担。但是它的缺点也是显然的,它对所有的作业都一视同仁,没有考虑到作业的紧迫程度,另外对小作业的运行不利。
公平调度策略
这种策略在系统中配置了任务槽,一个任务槽可以运行一个task任务,这些任务就是一个大的作业被切分后的小作业。当一个用户提交多个作业时,每个作业可以分配到一定的任务槽以执行task任务(这里的任务槽可以理解为可以运行一个map任务或reduce任务)。如果把整个hadoop集群作业调度跟操作系统的作业调度相比,第一种FIFO就相当于操作系统中早期的单道批处理系统,系统中每个时刻只有一道作业在运行,而公平调度相当于多道批处理系统,它实现了同一个时刻多道作业同时运行。由于linux是多用户的,若有多个用户同时提交多个作业会怎样?在这种策略中给每个用户分配一个作业池,然后给每个作业池设置一个最小共享槽个数,什么是最小共享槽个数呢?先要理解一个最小什么意思,最小是指只要这个作业池需要,调度器应该确保能够满足这个作业池的最小任务槽数的需求,但是如何才能确保在它需要的时候就有空的任务槽,一种方法是固定分配一定数量的槽给作业池不动,这个数量至少是最小任务槽值,这样只要在作业池需要的时候就分配给它就行了,但是这样在这个作业池没有用到这么多任务槽的时候会造成浪费,这种策略实际上是这样做的,当作业池的需求没有达到最小任务槽数时,名义上是自己的剩余的任务槽会被分给其他有需要的作业池,当一个作业池需要申请任务槽的时候若系统中没有了,这时候不会去抢占别人的(也不知道抢谁的啊),只要当前一个空的任务槽释放会被立即分配给这个作业池。
在一个用户的作业池内,多个作业如何分配槽这个可以自行选择了如FIFO。所以这种调度策略分为两级:
第一级,在池间分配槽,在多用户的情况下,每个用户分配一个作业池。
第二级,在作业池内,每个用户可以使用不同的调度策略。
计算能力调度
计算能力调度和公平调度有点类似,公平调度策略是以作业池为单位分配任务槽,而计算能力调度是以队列为单位分配tasktracker(集群中一个节点),这种调度策略配置了多个队列,每个队列配置了最小额度的tasktracker数量,同公平调度策略类似,当一个队列有空闲的tasktracker时,调度器会将空闲的分配给其他的队列,当有空闲的tasktracker时,由于这时候可能有多个队列没有得到最小额度的tasktracker而又在申请新的,空闲的tasktracker会被优先分配到最饥饿的队列中去,如何衡量饥饿程度呢?可以通过计算队列中正在运行的任务数与其分得的计算资源之间的比值是否最低来判断的,越低说明饥饿程度越高。
计算能力调度策略是以队列的方式组织作业的,所以一个用户的作业可能在多个队列中,如果不对用户做一定的限制,很可能出现在多个用户之间出现严重不公平的现象。所以在选中新作业运行时候,还需要考虑作业所属的用户是否超过了资源的限制,如果超过,作业不会被选中。
对于在同一个队列中,这种策略使用的是基于优先级的FIFO策略,但是不会抢占。
- 浏览: 150766 次
文章分类
最新评论
-
cldtc:
您好,想请教一个问题,using python脚本的时候怎样打 ...
Hadoop Hive sql语法详解5--HiveQL与SQL区别
发表评论
-
hadoop-集群管理(1)——配置文件
2014-06-12 11:53 7801. 配置文件列表如下: [tianyc@R ... -
hadoop-集群管理(2)——内存设置
2014-06-12 11:52 6731. 内存 hadoop为 ... -
Hadoop学习总结
2014-06-10 00:18 1739Hadoop是什么东西?什 ... -
Hadoop分布式文件系统:架构和设计要点
2014-05-10 19:12 855转一篇关于Hadoop系统架 ... -
Hadoop技术一句话介绍
2014-05-04 20:22 825Hadoop 是一种分布式系统的平台,通过它 ... -
Hadoop分析日志实例的详细步骤及出现的问题分析和解决
2014-04-19 22:59 23661). 日志格式分析 首先分析 Hadoop 的日志格式, ... -
hadoop集群调优
2014-04-19 22:53 845hadoop集群调优分两个方面,map和reduce ... -
hadoop mapreduce单表关联
2014-04-16 13:05 1426例如给出表child-parent表,要求输出grandch ... -
hadoop mapreduce多表关联
2014-04-16 13:03 646假设有如下两个文件,一个是表是公司和地址的序号的对应,一个表 ... -
转-用Hadoop构建电影推荐系统
2014-04-14 16:06 728Hadoop家族系列文章,主要介绍Hadoop家族产品,常用 ... -
HDFS追本溯源:体系架构详解
2014-04-14 13:03 638Hadoop是一个开发和运行处理大规模数据的软件平 ... -
Hadoop面试45个题目和参考答案
2014-04-13 22:41 6281.Hadoop集群可以运行的3个模式? 单机(本 ... -
转-- Hadoop常见错误问题及解决方法(1)
2014-04-13 22:32 2956遇到问题以后先查看日志,以下是常见的错误情况及解决方法,希 ... -
hadoop参数配置优化
2014-04-12 00:09 853由于最近一直忙于项目的开发,所以很多配置大致进行了一下测试 ... -
hadoop配置、运行错误总结二
2014-04-11 13:15 1041接上一篇。十二、如果遇到如下错误: FAILED j ... -
hadoop配置、运行错误总结一
2014-04-11 13:14 1250新手搞hadoop最头疼各种各样的问题了,我把自己遇到的问 ... -
转-Hadoop虽强大,但不是万能的
2014-04-10 17:17 579注:本文翻译自 http://www.cyanny.com ... -
单节点配置SecondaryNameNode
2014-04-10 16:53 801一、SecondaryNameNode概念: 光 ... -
oop主节点(NameNode)备份策略以及恢复方法
2014-04-10 16:38 431一、dits和fsimage 首先要提到两个文件e ... -
hadoop常见错误及处理方法
2014-04-10 16:33 7131、hadoop-root-datanode-master ...
相关推荐
Hadoop集群作业的调度算法Hadoop集群作业的调度算法Hadoop集群作业的调度算法
Hadoop的利器,公平调度器算法的详细概述与实现!
Hadoop的普及正在如火如荼,而网上对Hadoop调度算法的...在操作系统课程报告上研究的Hadoop集群作业的调度算法。包括传统的FIFO Scheduler、Fair Scheduler、Capacity Scheduler以及新特性的异构负载动态调度器 、LATE。
Hadoop集群公平调度算法的改进,张晓莉,谷利泽,对于基于特定系统和应用建立的Hadoop集群,任务的作业优先级别有显著差异。此时原有的公平调度算法并不能很好地利用资源并完成相应
在此基础上对Yarn的FairScheduler算法进行了改进,形成了考虑节点性能的调度算法。重新对Hadoop源码进行了编译,在所搭建的Hadoop平台上进行了对比实验,证明了加入节点性能指标有效解决了Hadoop负载均衡问题,对...
Hadoop公平调度器延迟调度算法延迟间隔的选择,张博钰,方维,目前,Hadoop分布式计算框架在各大互联网企业中被广泛的应用。多用户共享集群是Hadoop应用的典型场景,其中如何在保证用户作业服务质
为提升Hadoop集群在异构环境下处理硬实时作业的性能,提出一种基于历史进度自动调整作业优先级的调度算法(HAPS)。该算法实时监控作业进度信息,对作业进度率进行指数平滑预测,计算作业剩余执行时间,动态估算作业...
。
同构Hadoop集群环境下改进的延迟调度算法.pdf
针对开源Hadoop平台现有FIFO调度器不能满足实时监测系统要求,在原有FIFO调度器的基础上,设计了一种双队列的作业调度器,综合考虑作业的截止时间和优先级来进行作业调度决策,实验结果表明,与FIFO调度器相比,双...
为了满足有截止时间限制的MapReduce作业的需求,提出一种基于截止时间限制的动态调度算法(DCDS)。该算法实时监控作业运行状况,并对作业运行时间进行动态估算,从而确定作业优先级;对于时间紧迫的作业,可通过...
针对原有的延迟调度算法, 提出延迟一容量调度算法, 允许部分任务选择非本地化节点作为原延迟调度算法中任务的目标计算节点, 以提高作业的响应时间与增加作业的并行程度。最后通过实验对比分析, 改进后的算法在执行...
Hadoop剩余有效时间调度算法,李熙文,邹华,并行计算被用来解决复杂的分布式计算问题和大型的处理问题,通过同时使用多台机器中的计算能力,达到实现高效并行计算的目的。Had
针对LATE调度算法在分配节点执行落后任务的备份任务时的不足,结合Hadoop集群的异构性和工作负载的特殊性,在LATE调度算法的基础上提出了一种改进的LATE调度算法。对该算法进行实验和性能分析,表明该算法在完成时间...
针对上述两问题将严重影响集群作业的执行进度, 在Hadoop平台下利用统计方法, 提出一种资源调度算法, 对计算资源较少的节点和不稳定状态的节点进行标志并降权, 让集群尽可能调度资源较好的稳定节点。实验结果表明, 该...
在大规模的Hadoop集群中,良好的任务调度策略对提高数据本地性、减小网络传输开销、减少作业执行时间以及提高集群的作业吞吐量都有着重要的影响。针对Hadoop架构中reduce任务的数据本地性较低问题,提出了一种基于...
针对当前抓取调度数据量巨大且计算复杂耗时长的问题,根据数据集的维度特征属性,通过凝聚层次聚类的方式对数据进行分层处理,并将其运用到小型Hadoop分布式系统中,通过服务器Master来对一般数据库MySQL数据库进行...
为了解决当前Hadoop集群在异构资源环境下固有的调度分配方法的不足,提出了一种基于节点能力的自适应调度算法NCAS(node capacity adaptive scheduling)。首先,NCAS算法根据节点性能、任务特征计算得到调度因子;...
从Hadoop配置文件入手,经历大量的实验,以求通过改变一些配置参数以提高Hadoop集群的性能。 从Hadoop作业调度入手,优化集群作业调度算法。