`

Hadoop集群三种作业调度算法介绍

阅读更多

Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法
先来先服务(FIFO)

Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。
FIFO比较简单,hadoop中只有一个作业队列,被提交的作业按照先后顺序在作业队列中排队,新来的作业插入到队尾。一个作业运行完后,总是从队首取下一个作业运行。这种调度策略的优点是简单、易于实现,同时也减轻了jobtracker的负担。但是它的缺点也是显然的,它对所有的作业都一视同仁,没有考虑到作业的紧迫程度,另外对小作业的运行不利。
公平调度策略
这种策略在系统中配置了任务槽,一个任务槽可以运行一个task任务,这些任务就是一个大的作业被切分后的小作业。当一个用户提交多个作业时,每个作业可以分配到一定的任务槽以执行task任务(这里的任务槽可以理解为可以运行一个map任务或reduce任务)。如果把整个hadoop集群作业调度跟操作系统的作业调度相比,第一种FIFO就相当于操作系统中早期的单道批处理系统,系统中每个时刻只有一道作业在运行,而公平调度相当于多道批处理系统,它实现了同一个时刻多道作业同时运行。由于linux是多用户的,若有多个用户同时提交多个作业会怎样?在这种策略中给每个用户分配一个作业池,然后给每个作业池设置一个最小共享槽个数,什么是最小共享槽个数呢?先要理解一个最小什么意思,最小是指只要这个作业池需要,调度器应该确保能够满足这个作业池的最小任务槽数的需求,但是如何才能确保在它需要的时候就有空的任务槽,一种方法是固定分配一定数量的槽给作业池不动,这个数量至少是最小任务槽值,这样只要在作业池需要的时候就分配给它就行了,但是这样在这个作业池没有用到这么多任务槽的时候会造成浪费,这种策略实际上是这样做的,当作业池的需求没有达到最小任务槽数时,名义上是自己的剩余的任务槽会被分给其他有需要的作业池,当一个作业池需要申请任务槽的时候若系统中没有了,这时候不会去抢占别人的(也不知道抢谁的啊),只要当前一个空的任务槽释放会被立即分配给这个作业池。
在一个用户的作业池内,多个作业如何分配槽这个可以自行选择了如FIFO。所以这种调度策略分为两级:
第一级,在池间分配槽,在多用户的情况下,每个用户分配一个作业池。
第二级,在作业池内,每个用户可以使用不同的调度策略。
计算能力调度
计算能力调度和公平调度有点类似,公平调度策略是以作业池为单位分配任务槽,而计算能力调度是以队列为单位分配tasktracker(集群中一个节点),这种调度策略配置了多个队列,每个队列配置了最小额度的tasktracker数量,同公平调度策略类似,当一个队列有空闲的tasktracker时,调度器会将空闲的分配给其他的队列,当有空闲的tasktracker时,由于这时候可能有多个队列没有得到最小额度的tasktracker而又在申请新的,空闲的tasktracker会被优先分配到最饥饿的队列中去,如何衡量饥饿程度呢?可以通过计算队列中正在运行的任务数与其分得的计算资源之间的比值是否最低来判断的,越低说明饥饿程度越高。
计算能力调度策略是以队列的方式组织作业的,所以一个用户的作业可能在多个队列中,如果不对用户做一定的限制,很可能出现在多个用户之间出现严重不公平的现象。所以在选中新作业运行时候,还需要考虑作业所属的用户是否超过了资源的限制,如果超过,作业不会被选中。
对于在同一个队列中,这种策略使用的是基于优先级的FIFO策略,但是不会抢占。

分享到:
评论

相关推荐

    Hadoop集群作业的调度算法

    本文将详细介绍Hadoop集群作业调度算法的基本概念、重要性以及几种常用的调度策略。 #### 二、Hadoop集群作业调度算法的重要性 Hadoop集群通常由大量的计算机节点组成,这些节点负责执行MapReduce作业。作业调度...

    关于Hadoop集群作业调度算法的探讨.pdf

    本文主要探讨了Hadoop集群中的三种默认调度算法——FIFO(先进先出)、公平份额调度和计算能力调度,并涉及了在异构集群环境下的作业调度策略。 首先,FIFO调度算法是最简单的调度策略,类似于操作系统中的进程调度...

    Hadoop平台下的作业调度算法的研究.pdf

    Hadoop的作业调度算法是其核心组件之一,负责合理分配和调度用户的任务,以确保整个系统的性能和效率。 传统的Hadoop调度算法,如FIFO(先进先出)和Capacity Scheduler,主要关注资源的公平分配和集群的整体利用率...

    hadoop云计算平台作业调度算法的研究.ppt

    7. Hadoop云计算平台作业调度算法需要考虑到计算集群中的资源分布、节点的执行速度和作业的完成时间等因素。 本文对Hadoop云计算平台作业调度算法进行了深入的研究和分析,为解决Hadoop云计算平台中的作业调度问题...

    Hadoop集群作业的调度研究

    Hadoop的普及正在如火如荼,而网上对Hadoop调度算法的...在操作系统课程报告上研究的Hadoop集群作业的调度算法。包括传统的FIFO Scheduler、Fair Scheduler、Capacity Scheduler以及新特性的异构负载动态调度器 、LATE。

    同构Hadoop集群环境下改进的延迟调度算法.pdf

    【同构Hadoop集群环境下的延迟调度算法】 在大数据处理领域,Hadoop是一个广泛使用的开源框架,它提供了分布式存储和计算的能力。然而,在Hadoop集群环境中,由于计算资源(节点)与数据资源(数据块)可能分布在...

    Hadoop中作业调度算法的研究与改进.pdf

    然而,作业调度算法作为Hadoop系统的核心组件之一,其性能直接影响到整个集群的资源利用率和任务完成速度。 当前Hadoop的作业调度算法主要基于队列,如Fair Scheduler和Capacity Scheduler,这些算法通常在不了解...

    Hadoop调度算法

    本篇文章将详细介绍Hadoop中的几种常见调度算法,包括FIFO(先进先出)、公平调度算法以及计算能力调度算法。 1. FIFO调度算法: FIFO调度算法是最简单的调度策略,其基本思想是按照作业提交的顺序进行调度。所有...

    基于节点性能的Hadoop作业调度算法改进.pdf

    实验结果证明,这种改进后的调度算法有效地解决了Hadoop集群中的节点负载不均衡问题,提升了作业执行的整体效率。通过对比传统算法,新算法能够更好地适应节点性能的变化,减少节点间的性能差异带来的负面影响,确保...

    hadoop公平调度算法解析

    综上所述,Hadoop的公平调度算法通过资源池、公平共享、最小共享资源保障、时间片抢占及作业并发控制等一系列机制,实现了多用户环境下资源的有效分配和管理。随着技术的不断发展,公平调度器将继续进化,为大数据...

    一种数据挖掘算法在Hadoop集群上的研究与实现.pdf

    本文提出了一种数据挖掘算法——基于物品的协同过滤算法,并将其在Hadoop集群上进行实现和研究。 首先,协同过滤算法是推荐系统中常用的技术,分为基于用户的协同过滤和基于物品的协同过滤。在用户数量远大于物品...

    论文研究-Hadoop平台下基于截止时间限制的动态调度算法的研究.pdf

    为了满足有截止时间限制的MapReduce作业的需求,提出一种基于截止时间限制的动态调度算法(DCDS)。该算法实时监控作业运行状况,并对作业运行时间进行动态估算,从而确定作业优先级;对于时间紧迫的作业,可通过...

    论文研究-同构Hadoop集群环境下改进的延迟调度算法.pdf

    针对原有的延迟调度算法, 提出延迟一容量调度算法, 允许部分任务选择非本地化节点作为原延迟调度算法中任务的目标计算节点, 以提高作业的响应时间与增加作业的并行程度。最后通过实验对比分析, 改进后的算法在执行...

Global site tag (gtag.js) - Google Analytics