CN103685492B - Hadoop集群系统的调度方法、调度装置及其应用 - Google Patents

Hadoop集群系统的调度方法、调度装置及其应用 Download PDF

Info

Publication number
CN103685492B
CN103685492B CN201310651432.4A CN201310651432A CN103685492B CN 103685492 B CN103685492 B CN 103685492B CN 201310651432 A CN201310651432 A CN 201310651432A CN 103685492 B CN103685492 B CN 103685492B
Authority
CN
China
Prior art keywords
resource
job
available maximum
stage
maximum resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310651432.4A
Other languages
English (en)
Other versions
CN103685492A (zh
Inventor
田文洪
陈瑜
王心阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhigu Ruituo Technology Services Co Ltd
Original Assignee
Beijing Zhigu Ruituo Technology Services Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zhigu Ruituo Technology Services Co Ltd filed Critical Beijing Zhigu Ruituo Technology Services Co Ltd
Priority to CN201310651432.4A priority Critical patent/CN103685492B/zh
Publication of CN103685492A publication Critical patent/CN103685492A/zh
Application granted granted Critical
Publication of CN103685492B publication Critical patent/CN103685492B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种Hadoop集群系统调度方法、调度装置及其应用,涉及集群调度技术领域。所述方法包括步骤:为每个作业分配系统可用的最大资源;根据作业属性,按照Johnson算法安排作业的执行顺序;按照所述执行顺序调度作业。本发明各实施例将MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson算法的两阶段条件完全匹配,且在每个作业的执行期间,为其分配系统最大的可用资源,进而能够最小化总完工时间,减小集群系统的能耗。

Description

Hadoop集群系统的调度方法、调度装置及其应用
技术领域
本发明涉及集群调度技术领域,尤其涉及一种Hadoop集群系统的调度方法、调度装置及其应用。
背景技术
Hadoop是一个能够对大量数据进行分布式处理的软件框架。但是Hadoop是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop集群(cluster)部署时有三个角色,如图1所示,分别是:客户端(Client)机器、主节点(Master nodes)和从节点(Slave nodes)。主节点主要负责Hadoop两个关键功能模块:数据存储——Hadoop分布式文件系统(HadoopDistributed File System,HDFS)、以及对运行在这个数据之上的并行计算(MapReduce)的监督。名字节点(Name Node)和作业追踪器(Job Tracker)是Hadoop架构的主节点,任务追踪器(Task Tracker)和数据节点(Data Node)是Hadoop集群中的从节点。
HDFS存储Hadoop集群中所有存储节点上的文件。
MapReduce是一种简化并行计算的编程模型,用于大规模数据集(大于1TB)的并行运算,在云计算和大数据处理时代,MapReduce的开源实现Hadoop以其通用、方便实用等特征得到了迄今为止最为广泛的应用。每个MapReduce作业的执行包括Map阶段和Reduce阶段,Map阶段分成多个Map任务,Reduce阶段包括多个Reduce任务。每个Map任务处理输入数据的一个逻辑分片(split)。split是一个逻辑概念,它只包含一些元数据信息,比如数据起始位置、数据长度、数据所在节点等。split的划分方法通常由用户自己决定,split的多少决定了Map任务的数目。
Name Node负责文件系统命名空间和客户端的访问控制。Job Tracker负责资源监控和作业调度,同时跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器(Task Scheduler),而调度器会在资源出现空闲时,选择合适的任务使用这些资源。在Hadoop集群中,任务调度器是一个可插拔的模块,用户可以根据自己的需要设计相应的调度器。Task Tracker会周期性地通过心跳(Heartbeat)将本节点上资源的使用情况和任务的执行进度汇报给Job Tracker,同时接收Job Tracker发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)。Task Tracker使用“slot”等量划分本节点上的资源量。slot不是CPU的核,也不是存储芯片,它是一个逻辑概念,一个节点的slot的数量用来表示某个节点的资源的容量或者说是能力的大小,因而slot是Hadoop的资源单位。Hadoop利用slot来管理分配节点的资源。每个作业申请资源以slot为单位,每个节点会确定自己的计算能力以及存储器,确定自己包含的slot总量。当某个作业要开始执行时,先向Job Tracker申请slot,一个任务获取到一个slot后才有机会运行,而Hadoop调度器的作用就是将各个Task Tracker上的空闲slot分配给任务使用。slot分为Map slot和Reduce slot两种,分别供Map Task和Reduce Task使用。
Data Node是Hadoop集群中的存储节点,它表示分布式文件系统(多个Data Node节点的情况下,是其中一部分)。
客户端机器集合了Hadoop上所有的集群设置,但既不包括主节点也不包括从节点。取而代之的,客户端机器的作用是把数据加载到集群中,递交给MapReduce进行数据处理,并在工作结束后取回或者查看结果。
任务调度是Hadoop集群系统中的核心技术,在云计算研究中,MapReduce环境的作业调度带来了新的课题和挑战,引起了越来越多的重视。最初,Hadoop默认的FIFO(先入先出)调度器专为周期性执行大规模批量作业而设计。随着MapReduce集群系统的用户数量的增加,计算能力调度器和Hadoop公平调度器(HFS:Hadoop Fair Scheduling)的出现,提供了更高效的集群共享方式,但是,现有的调度器还不能提供对最小化作业集完工时间的支持,当提交作业为一个作业集时,完工时间可能较长因而导致总能耗较高。
自从可插入式调度器实现以来,用户可以根据自己的需要设计相应的调度器,目前业内已研发了多种调度器算法。一个研究小组提出了一种通过在Hadoop集群中创建两个资源池(Pools)的启发式算法——Balanced Pools算法,其将业务集分为两个子集,并分别由两个资源池处理,以负载均衡并最小化任务的总完工时间,该算法虽然能够在一定程度上缩短总完工时间,但是还未能实现总完工时间的最小化。
发明内容
本发明要解决的技术问题是:提供一种Hadoop集群系统的调度方法、调度装置及其应用,能够最小化作业集的总完工时间。
为解决上述技术问题,第一方面,本发明实施例提供了一种Hadoop集群系统调度方法,所述方法包括步骤:
为每个作业分配系统可用的最大资源;
根据作业属性,按照Johnson算法安排作业的执行顺序;
按照所述执行顺序调度作业。
结合第一方面,在第一种可能的实现方式中,所述为每个作业分配系统可用的最大资源中:
当作业请求的系统资源R等于系统可用的最大资源S时,为所述作业分配所述系统可用的最大资源S。
结合第一方面,在第二种可能的实现方式中,所述为每个作业分配系统可用的最大资源中:
当作业请求的系统资源R小于系统可用的最大资源S时,根据所述系统可用的最大资源S对所述作业分片,并为分片后的所述作业分配所述系统可用的最大资源S。
结合第一方面,在第三种可能的实现方式中,所述为每个作业分配系统可用的最大资源中:
当作业请求的系统资源R大于系统可用的最大资源S时,按照执行N波来为所述作业分配资源;
其中,N=R/S向上取整。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,当R/S不为整数时,为第1至第N-1波任务分配系统可用的最大资源S,为第N波任务分配其所需要的资源;
当R/S为整数时,为每波任务分配系统可用的最大资源。
结合第一方面或第一方面的上述任一种可能的实现方式,在第五种可能的实现方式中,所述作业属性为Ai包括阶段持续时间和阶段类型,且
其中,Ai为第i个作业Ji的属性,mi和ri分别为作业Ji的Map阶段和Reduce阶段的阶段持续时间,m和r分别表示作业的阶段类型为Map阶段和Reduce阶段。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述根据作业属性,按照Johnson算法安排作业的执行顺序的步骤中:
将阶段类型为m的作业根据阶段持续时间由短到长的顺序排序;
将阶段类型为r的作业根据阶段持续时间由长到短的顺序排序;且
将阶段类型为m的作业排在阶段类型为r的作业之前执行。
结合第一方面的第六种可能的实现方式,在第七种可能的实现方式中,阶段类型相同的作业按照编号由小到大的顺序排序。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述方法还包括步骤:
为每个作业编号。
结合第一方面的第五种可能的实现方式,在第九种可能的实现方式中,所述方法还包括步骤:
估算作业的阶段持续时间。
结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,所述估算作业的阶段持续时间的步骤中:
当作业请求的系统资源R等于所述系统可用的最大资源S时,根据所述作业请求的系统资源以及系统的先验信息估算所述作业的阶段持续时间。
结合第一方面的第九种可能的实现方式,在第十一种可能的实现方式中,所述估算作业的阶段持续时间的步骤中:
当作业请求的系统资源R不等于所述系统可用的最大资源S时,根据所述作业所分配到的资源以及系统的先验信息估算所述作业的阶段持续时间。
第二方面,本发明实施例提供了一种Hadoop集群系统的调度装置,所述装置包括:
分配模块,用于为每个作业分配系统可用的最大资源;
排序模块,用于根据作业属性,按照Johnson算法安排作业的执行顺序;
调度模块,用于按照所述执行顺序调度作业。
结合第二方面,在第一种可能的实现方式中,所述分配模块:
在作业请求的系统资源M等于系统可用的最大资源P时,为所述作业分配所述系统可用的最大资源P。
结合第二方面,在第二种可能的实现方式中,所述分配模块:
在作业请求的系统资源M小于系统可用的最大资源P时,根据所述系统可用的最大资源P对所述作业分片,并为分片后的所述作业分配所述系统可用的最大资源P。
结合第二方面,在第三种可能的实现方式中,所述分配模块:
在作业请求的系统资源R大于系统可用的最大资源S时,按照执行N波来为所述作业分配资源;
其中,N=R/S向下取整。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,装置分配模块在R/S不为整数时,为第1至第N-1波任务分配系统可用的最大资源S,为第N波任务分配其所需要的资源;
在R/S为整数时,为每波任务分配系统可用的最大资源。
结合第二方面或第二方面的上述任一种可能的实现方式,在第五种可能的实现方式中,所述作业属性为Ai包括阶段持续时间和阶段类型,且
其中,Ai为第i个作业Ji的属性,mi和ri分别为作业Ji的Map阶段和Reduce阶段的阶段持续时间,m和r分别表示作业的阶段类型为Map阶段和Reduce阶段。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述排序模块:
将阶段类型为m的作业根据阶段持续时间由短到长的顺序排序;
将阶段类型为r的作业根据阶段持续时间由长到短的顺序排序;且
将阶段类型为m的作业排在阶段类型为r的作业之前执行。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述排序模块将阶段类型相同的作业按照编号由小到大的顺序排序。
结合第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所述装置还包括:
编号模块,用于为每个作业编号。
结合第二方面的第五种可能的实现方式,在第九种可能的实现方式中,所述装置还包括:
估算模块,用于估算作业的阶段持续时间。
结合第二方面的第九种可能的实现方式,在第十种可能的实现方式中,所述估算模块:
在作业请求的系统资源R等于所述系统可用的最大资源S时,根据所述作业请求的系统资源以及系统的先验信息系统估算所述作业的阶段持续时间。
结合第二方面的第九种可能的实现方式,在第十一种可能的实现方式中,,所述估算模块:
在作业请求的系统资源R不等于所述系统可用的最大资源S时,根据所述作业所分配到的资源以及系统的先验信息估算所述作业的阶段持续时间。
第三方面,本发明实施例提供了一种Hadoop集群系统,包括第二方面或第二方面任一种可能的实现方式所述的调度装置。
第四方面,本发明实施例提供了一种Hadoop集群系统的功耗降低方法,其特征在于,所述Hadoop集群系统使用第一方面或第一方面任一种可能的实现方式所述的方法进行调度。
本发明各实施例将MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson算法的两阶段条件完全匹配,且在每个作业的执行期间,为其分配系统最大的可用资源,进而能够最小化总完工时间,减小集群系统的能耗。
附图说明
图1是本发明一种实施例的Hadoop集群系统部署示意图;
图2是本发明一种实施例的Hadoop集群系统调度方法的流程图;
图3是本发明一种实施例的Hadoop集群系统调度装置的结构示意图;
图4是本发明另一种实施例的Hadoop集群系统调度装置的结构示意图;
图5是依照本发明一种实施例的Hadoop集群系统调度方法执行作业的执行结果示意图;
图6是本发明又一种实施例的Hadoop集群系统调度装置的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
为了更好的理解本发明,现对本发明实施例中涉及到的术语做如下说明:
一批作业在Hadoop集群系统中的总完工时间(total makespan):指按照一定的顺序执行完该批作业的所有Map/Reduce阶段所花费的总时间,即从第一个作业的Map阶段开始到最后一个作业Reduce阶段结束所花的总时间。
Johnson算法:是一种求取最短工期的程序编制及应用算法。经典的Johnson算法要求一个物品必须通过一个生产阶段(或者一个机器),然后通过第二个阶段,每个阶段只有一个机器,一个机器上任何时刻一次最多处理一个物品,在此种情况下可以利用经典Johnson算法安排出一批任务的执行顺序,并计算出最小总完工时间。
波(wave):指一个作业在一个给定的Hadoop集群系统中需要执行的次数,当作业请求的资源为R,系统可用最大资源为S,且R大于S时,该作业的执行次数也即波数N等于R/S向上取整。例如一个作业请求使用30个Map slots和30个Reduce slots,在一个具有20×20的可用资源(20个Map slots和20个Reduce slots)的Hadoop集群系统中,其执行的次数为2波(Map阶段执行2波,Reduce阶段也为2波),依此类推。
本发明实施例的方法将MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson算法的两阶段条件完全匹配,利用Johnson算法计算出一批作业的最小总完工时间,通过最小化作业集总完工时间,减小集群系统的能耗。
如图2所示,本发明实施例提供了一种Hadoop集群系统的调度方法,该方法包括步骤:
S210.为每个作业分配系统可用的最大资源。
本发明实施例的方法以离线情况下,集群系统对客户端机器输入的包括n个作业的作业集的处理为例。将作业的MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson算法的两阶段条件完全匹配的前提下,为了最小化总完工时间,为每个作业分配系统可用的最大资源。
在本发明各实施例中,系统可用的资源指在给定的Hadoop集群系统中总的MapReduce资源时隙(slot)。本发明各实施例中假设Hadoop集群系统中的节点同时具有一个Map slot和一个Reduce slot,以Hadoop集群系统具有60个节点为例,可以表示其总的可用的最大资源为60×60个slot。当然这也可以动态地依据具体情况设定。
S220.根据作业属性,按照Johnson算法安排作业的执行顺序。
按照Johnson算法,将先行工序(Map阶段)施工工期(阶段持续时间)短的要排在前面施工,而后继工序(Reduce阶段)施工工期(阶段持续时间)短的应排在后面施工。余项排序方法按此顺序进行,最终得到最佳的执行顺序。
S230.按照所述执行顺序调度作业。
综上,本发明实施例的方法将MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson算法的两阶段条件完全匹配,且在每个作业的执行期间,为其分配系统最大的可用资源,进而能够最小化总完工时间,减小集群系统的能耗。
具言之,为了满足经典Johnson算法的上述要求,在步骤S210中,对于每个作业:
当作业请求的系统资源R等于系统可用的最大资源S时,为所述作业分配所述系统可用的最大资源S。例如,当作业请求的系统资源R为30×30(30个Map slots,30个Reduceslots),系统可用的最大资源S为30×30(30个Map slots,30个Reduce slots)时,将30×30的系统资源全部分配给该作业。
当作业请求的系统资源R小于系统可用的最大资源S时,根据所述系统可用的最大资源S对所述作业分片,并为分片后的所述作业分配所述系统可用的最大资源S。例如,当作业请求的系统资源R为20×20,系统可用的最大资源S为30×30时,重新对该作业进行分片后,将30×30的系统资源全部分配给该作业。
当作业请求的系统资源R大于系统可用的最大资源S时,按照执行N波来为对所述作业分片,其中,N=R/S向上取整。
当R/S不为整数时,为第1至第N-1波任务分配系统可用的最大资源S,为第N波任务分配其所请求的资源,也即,对于前N-1波,系统满载执行,而最后一波不满载执行。例如,作业请求使用的资源R为30×30,系统可用最大资源S为20×20时,该作业的执行的次数为2波,第一波时系统满载执行,第二波时系统未满载执行。
当R/S为整数时,为每波任务分配系统可用的最大资源,此时,每波任务的执行与R=S时类似。
此外,在本发明各实施例中,将每个作业Ji表示为其Map和Reduce阶段持续时间组成的数据(mi,ri),每个作业Ji属性为Ai,Ai包括阶段持续时间和阶段类型,且
其中,Ai为第i个作业Ji的属性,mi和ri分别为作业Ji的Map阶段和Reduce阶段的阶段持续时间,m和r分别表示作业的阶段类型为Map阶段和Reduce阶段。
按照经典Johnson算法,先行工序(Map阶段)施工工期(阶段持续时间)短的要排在前面施工,而后继工序(Reduce阶段)施工工期短的应排在后面施工。余项排序方法按此顺序进行,最终得到最佳执行顺序,在步骤S220中,将业务Map和Reduce两个阶段建模为Johnson算法的两个过程,然后对各作业进行排序:
将阶段类型为m的作业根据阶段持续时间由短到长的顺序排序;
将阶段类型为r的作业根据阶段持续时间由长到短的顺序排序;且
将阶段类型为m的作业排在阶段类型为r的作业之前执行。
对于阶段类型相同的作业,优选按照编号由小到大的顺序排序。相应地,本发明的方法还包括步骤:
S240.为每个作业编号。
此外,为了获知每个作业的属性,本发明实施例的方法还包括步骤:
S250.估算作业的阶段持续时间。
在步骤S250中,当作业请求的系统资源R等于所述系统可用的最大资源S时,根据作业请求的系统资源R和系统先验信息估算所述作业的阶段持续时间。对于周期性作业,可从集群系统以往的执行对其进行自动分析。当需要处理新的作业集时,可以使用提取到的作业概况,计算作业的Map阶段和Reduce阶段的阶段持续时间的估计值。
而当作业请求的系统资源R不等于所述系统可用的最大资源S时,根据在步骤S210中所述作业所分配到的资源以及系统的先验信息估算所述作业的阶段持续时间。
根据S. Johnson, Optimal Two- and Three-Stage Production Scheduleswith Setup Times Included, Naval Res. Log. Quart., 1954中的记载,假设待执行的作业集包含n个作业,Johnson算法的时间复杂度主要在排序n个作业,因而是O(nlogn)从Johnson算法可以通过以下公式计算系统最小的总完工时间:
T = Σ i = 1 n r i + max u = 1 n K u - - - ( 2 )
K u = Σ i = 1 u m i - Σ i = 1 u - 1 r i - - - ( 3 )
本领域技术人员可以理解,在本发明各实施例的方法中,各步骤的序号大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明具体实施例的实施过程构成任何限定。
如图3所示,本发明实施例还提供了一种Hadoop集群系统的调度装300,该装置300包括:
分配模块310,用于为每个作业分配系统可用的最大资源。
本发明实施例的装置以离线情况下,集群系统对客户端机器输入的包括n个作业的作业集的处理为例。将作业的MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson 算法的两阶段条件完全匹配的前提下,为了最小化总完工时间,为每个作业分配系统可用的最大资源。
排序模块320,用于根据作业属性,按照Johnson算法安排作业的执行顺序。
按照Johnson算法,将先行工序(Map阶段)施工工期(阶段持续时间)短的要排在前面施工,而后继工序(Reduce阶段)施工工期(阶段持续时间)短的应排在后面施工。余项排序方法按此顺序进行,最终得到最佳的执行顺序。
调度模块330,用于按照所述执行顺序调度作业。
综上,本发明实施例的装置将MapReduce的两阶段(Map阶段和Reduce阶段)与经典Johnson算法的两阶段条件完全匹配,且在每个作业的执行期间,为其分配系统最大的可用资源,进而能够最小化总完工时间,减小集群系统的能耗。
具言之,为了满足经典Johnson算法的上述要求,对于每个作业,分配模块320:
在作业请求的系统资源R等于系统可用的最大资源S时,为所述作业分配所述系统可用的最大资源S。例如,当作业请求的系统资源R为30×30(30个Map slots,30个Reduceslots),系统可用的最大资源S为30×30(30个Map slots,30个Reduce slots)时,将30×30的系统资源全部分配给该作业。
在作业请求的系统资源R小于系统可用的最大资源S时,根据所述系统可用的最大资源S对所述作业分片,并为分片后的所述作业分配所述系统可用的最大资源S。例如,当作业请求的系统资源R为20×20,系统可用的最大资源S为30×30时,重新对该作业进行分片后,将30×30的系统资源全部分配给该作业。
在作业请求的系统资源R大于系统可用的最大资源S时,按照执行N波来为对所述作业分片,其中,N=R/S向上取整。
若R/S不为整数,为第1至第N-1波任务分配系统可用的最大资源S,为第N波任务分配其所需要的资源,也即,对于前N-1波,系统满载执行,而最后一波不满载执行。例如,作业请求使用的资源R为30×30,系统可用最大资源S为20×20时,该作业的执行的次数为2波,为第一波任务分配20×20的资源,为第二波的任务分配10×10的资源,第一波时系统满载执行,第二波时系统未满载执行。
若R/S为整数,为每波任务分配系统可用的最大资源,此时,每波任务的执行与R=S时类似。
按照经典Johnson算法,先行工序(Map阶段)施工工期(阶段持续时间)短的要排在前面施工,而后继工序(Reduce阶段)施工工期短的应排在后面施工。余项排序方法按此顺序进行,最终得到最佳执行顺序,排序模块320将业务Map和Reduce两个阶段建模为Johnson算法的两个过程,然后对各作业进行排序:
将阶段类型为m的作业根据阶段持续时间由短到长的顺序排序;
将阶段类型为r的作业根据阶段持续时间由长到短的顺序排序;且
将阶段类型为m的作业排在阶段类型为r的作业之前执行。
对于阶段类型相同的作业,优选按照编号由小到大的顺序排序。相应地,如图4所示,本发明实施例的装置还包括步骤:
编号模块340,用于为每个作业编号。
此外,为了获知每个作业的属性,本发明实施例的装置还包括:
估算模块350,用于估算作业的阶段持续时间。估算模块350在业请求的系统资源R等于所述系统可用的最大资源S时,根据作业请求的系统资源R和系统先验信息估算所述作业的阶段持续时间。对于周期性作业,可从集群系统以往的执行对其进行自动分析。当需要处理新的作业集时,可以使用提取到的作业概况,计算作业的Map阶段和Reduce阶段的阶段持续时间的估计值。
而当作业请求的系统资源R不等于所述系统可用的最大资源S时,估算模块350根据排序模块320所述作业所分配到的资源以及系统的先验信息估算所述作业的阶段持续时间。
根据S.Johnson,Optimal Two-and Three-Stage Production Schedules withSetup Times Included,Naval Res.Log.Quart.,1954中的记载,假设待执行的作业集包含n个作业,Johnson算法的时间复杂度主要在排序n个作业,因而是O(nlogn)从Johnson算法可以通过以下公式计算系统最小的总完工时间:
T = Σ i = 1 n r i + max u = 1 n K u - - - ( 2 )
K u = Σ i = 1 u m i - Σ i = 1 u - 1 r i - - - ( 3 )
本发明实施例还提供了一种包括本发明实施例的图3至图4所示的调度装置的Hadoop集群系统,该集群系统可按照图1所示的架构部署,该调度装置可为图1中所示的任务调度器。
本发明实施例还提供了一种Hadoop集群系统的能耗降低方法,该方法通过在Hadoop集群系统中采用本发明实施例的图2所示的调度方法来最小化Hadoop集群系统执行作业的总完工时间,进而降低系统能耗。
以下验证最小的总完工时间会带来最小的系统能耗:
对于Hadoop集群系统,一个节点一段时间内的能耗可以表示为:
Pi=Pmin+(Pmax-Pmin)Ui (4)
以系统中节点同构的情况为例,Pi为节点i(一个服务器)的功率,Pmin为节点的利用率为0时的功率,Pmax为节点利用率为100%时的功率,Ui为节点的CPU的平均利用率。
节点i在一段时间[t0,t1]内的总功耗可表示为:
E i = ∫ t 0 t 1 P i ( U i ( t ) ) dt - - - ( 5 )
其中,Pi(Ui(t))为功率函数,而Ui(t)为CPU在t时刻的利用率,若使用一段时间Ti(=t1-t0)内的平均功率,则公式(5)可以简化为:
Ei=Pi×(t1-t0)=PiTi
=(Pmin+(Pmax-Pmin)Ui)Ti (6)
则一段时间内的Hadoop集群系统的总能耗可表示为:
E H = Σ i = 1 m E i
= Σ i = 1 m ( P min + ( P max - P min ) U i ) T i
= P min Σ i = 1 m T i + ( P max - P min ) Σ i = 1 m U i T i - - - ( 7 )
设α=Pmin,β=Pmax-Pmin,T=∑Ti,L是Hadoop集群系统的总负载,由公式(7)可以得到:
E H = Σ i = 1 m E i
= Σ i = 1 m ( P min + ( P max - P min ) U i ) T i
= P min Σ i = 1 m T i + ( P max - P min ) Σ i = 1 m U i T i
= αT + βL - - - ( 7 )
综上,系统的总工作负载L是固定的,α和β都是常数,那么集群的总能耗是由其总完工时间确定,因此,总完工时间最小,系统总能耗最小。
以下通过具体实例来进一步说明本发明各实施例。
在一个最大可用资源为30×30的Hadoop集群系统中执行一个包括5个作业的作业集J,将5个作业按照1-5编号,且其中,作业J1、J2和J5分别请求30个Map和30个Reduceslots,作业J3和J4分别请求20个Map和20个Reduce slots。根据集群系统的先验信息,估算每个业务的阶段执行时间,并用(mi,ri)的形式将每个作业表示如下:
J1=(4,5)
J2=(1,4)
J3=(30,4)
J4=(6,30)
J5=(2,3)
其中,阶段持续时间所表示的含义为时间单位,例如,J1的Map阶段的阶段持续时间为4个时间单位,Reduce的阶段持续时间为5个时间单位。由此,上述五个作业的属性分别为:
A1=(4,m)
A2=(1,m)
A3=(4,r)
A4=(6,m)
A5=(2,m)
按照本发明实施例的方法,对该作业集进行处理的过程如下:
S510.为每个作业分配系统可用的最大资源30×30:为作业J1、J2和J5分配最大资源;将J3和J4作业重新分片,并为其分配最大资源。
S520.根据所分配到的最大资源,重新计算作业的阶段持续时间:
J3=(20,8/3)
J4=(4,20)。
S530.根据作业属性,按照Johnson算法安排五个作业的执行顺序为:
序δ=(J1、J2、J5、J4、J3)。
S540.按照步骤安排的执行顺序执行上述作业,作业的执行结果如图5所示,总完工时间为35个时间单位。
按照现有技术中的BlancedPools算法,对于同样的作业集,其将所有作业分为两个作业池来执行,总完工时间为40个时间单位。可见,使用本发明的方法可获得最小化的总完工时间。
如图6所示,为本发明还实施例的另一种Hadoop集群系统的调度装置600,本发明具体实施例并不对Hadoop集群系统的调度装置600的具体实现做限定。如图6所示,该装置600可以包括:
处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)1430、以及通信总线640。其中:
处理器610、通信接口620、以及存储器630通过通信总线640完成相互间的通信。
通信接口620,用于与比如客户端等的网元通信。
处理器610,用于执行程序632,具体可以执行上述图2所示的方法实施例中的相关步骤。
具体地,程序632可以包括程序代码,所述程序代码包括计算机操作指令。
处理器610可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器630,用于存放程序632。存储器630可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序632具体使该装置600执行以下步骤:
为每个作业分配系统可用的最大资源;
根据作业属性,按照Johnson算法安排作业的执行顺序;
按照所述执行顺序调度作业。
程序632中各单元的具体实现可以参见上文各实施例中的相应步骤或单元,在此不赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机模块(可以是个人计算机,服务器,或者网络模块等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (20)

1.一种Hadoop集群系统调度方法,其特征在于,所述方法包括步骤:
为每个作业分配系统可用的最大资源;
其中,当作业请求的系统资源R等于系统可用的最大资源S时,为所述作业分配所述系统可用的最大资源S;
当作业请求的系统资源R小于系统可用的最大资源S时,根据所述系统可用的最大资源S对所述作业分片,并为分片后的所述作业分配所述系统可用的最大资源S;
当作业请求的系统资源R大于系统可用的最大资源S时,按照执行N波来为所述作业分配资源;
其中,N=R/S向上取整;
根据作业属性,按照Johnson算法安排作业的执行顺序;
按照所述执行顺序调度作业。
2.根据权利要求1所述的方法,其特征在于,当R/S不为整数时,为第1至第N-1波任务分配系统可用的最大资源S,为第N波任务分配其所需要的资源;
当R/S为整数时,为每波任务分配系统可用的最大资源。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述作业属性为Ai包括阶段持续时间和阶段类型,且
其中,Ai为第i个作业Ji的属性,mi和ri分别为作业Ji的Map阶段和Reduce阶段的阶段持续时间,m和r分别表示作业的阶段类型为Map阶段和Reduce阶段。
4.根据权利要求3所述的方法,其特征在于,在所述根据作业属性,按照Johnson算法安排作业的执行顺序的步骤中:
将阶段类型为m的作业根据阶段持续时间由短到长的顺序排序;
将阶段类型为r的作业根据阶段持续时间由长到短的顺序排序;且
将阶段类型为m的作业排在阶段类型为r的作业之前执行。
5.根据权利要求4所述的方法,其特征在于,阶段类型相同的作业按照编号由小到大的顺序排序。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括步骤:
为每个作业编号。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括步骤:
估算作业的阶段持续时间。
8.根据权利要求7所述的方法,其特征在于,所述估算作业的阶段持续时间的步骤中:
当作业请求的系统资源R等于所述系统可用的最大资源S时,根据所述作业请求的系统资源以及系统的先验信息估算所述作业的阶段持续时间。
9.根据权利要求7所述的方法,其特征在于,所述估算作业的阶段持续时间的步骤中:
当作业请求的系统资源R不等于所述系统可用的最大资源S时,根据所述作业所分配到的资源以及系统的先验信息估算所述作业的阶段持续时间。
10.一种Hadoop集群系统的调度装置,其特征在于,所述装置包括:
分配模块,用于为每个作业分配系统可用的最大资源;
其中,在作业请求的系统资源M等于系统可用的最大资源P时,为所述作业分配所述系统可用的最大资源P;
在作业请求的系统资源M小于系统可用的最大资源P时,根据所述系统可用的最大资源P对所述作业分片,并为分片后的所述作业分配所述系统可用的最大资源P;
在作业请求的系统资源R大于系统可用的最大资源S时,按照执行N波来为所述作业分配资源;
其中,N=R/S向上取整;
排序模块,用于根据作业属性,按照Johnson算法安排作业的执行顺序;
调度模块,用于按照所述执行顺序调度作业。
11.根据权利要求10所述的装置,其特征在于,装置分配模块在R/S不为整数时,为第1至第N-1波任务分配系统可用的最大资源S,为第N波任务分配其所需要的资源;
在R/S为整数时,为每波任务分配系统可用的最大资源。
12.根据权利要求10至11中任一项所述的装置,其特征在于,所述作业属性为Ai包括阶段持续时间和阶段类型,且
其中,Ai为第i个作业Ji的属性,mi和ri分别为作业Ji的Map阶段和Reduce阶段的阶段持续时间,m和r分别表示作业的阶段类型为Map阶段和Reduce阶段。
13.根据权利要求12所述的装置,其特征在于,所述排序模块:
将阶段类型为m的作业根据阶段持续时间由短到长的顺序排序;
将阶段类型为r的作业根据阶段持续时间由长到短的顺序排序;且
将阶段类型为m的作业排在阶段类型为r的作业之前执行。
14.根据权利要求13所述的装置,其特征在于,所述排序模块将阶段类型相同的作业按照编号由小到大的顺序排序。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
编号模块,用于为每个作业编号。
16.根据权利要求12所述的装置,其特征在于,所述装置还包括:
估算模块,用于估算作业的阶段持续时间。
17.根据权利要求16所述的装置,其特征在于,所述估算模块:
在作业请求的系统资源R等于所述系统可用的最大资源S时,根据所述作业请求的系统资源以及系统的先验信息系统估算所述作业的阶段持续时间。
18.根据权利要求16所述的装置,其特征在于,所述估算模块:
在作业请求的系统资源R不等于所述系统可用的最大资源S时,根据所述作业所分配到的资源以及系统的先验信息估算所述作业的阶段持续时间。
19.一种Hadoop集群系统,其特征在于,包括权利要求10至18中任一项所述的调度装置。
20.一种Hadoop集群系统的功耗降低方法,其特征在于,所述Hadoop集群系统使用权利要求1至9中任一项所述的方法进行调度。
CN201310651432.4A 2013-12-03 2013-12-03 Hadoop集群系统的调度方法、调度装置及其应用 Active CN103685492B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310651432.4A CN103685492B (zh) 2013-12-03 2013-12-03 Hadoop集群系统的调度方法、调度装置及其应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310651432.4A CN103685492B (zh) 2013-12-03 2013-12-03 Hadoop集群系统的调度方法、调度装置及其应用

Publications (2)

Publication Number Publication Date
CN103685492A CN103685492A (zh) 2014-03-26
CN103685492B true CN103685492B (zh) 2017-01-25

Family

ID=50321767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310651432.4A Active CN103685492B (zh) 2013-12-03 2013-12-03 Hadoop集群系统的调度方法、调度装置及其应用

Country Status (1)

Country Link
CN (1) CN103685492B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104320486B (zh) * 2014-11-10 2018-10-23 连云港杰瑞电子有限公司 一种基于大数据的智能交通平台数据集成方法
CN105653357A (zh) * 2014-11-11 2016-06-08 田文洪 一种Hadoop集群的在线最小化总完工时间的调度方法和装置
CN105808334B (zh) * 2016-03-04 2016-12-28 山东大学 一种基于资源重用的MapReduce短作业优化系统及方法
CN107483364A (zh) * 2016-06-08 2017-12-15 国家计算机网络与信息安全管理中心 一种Hadoop Yarn网络带宽资源调度、隔离方法和装置
CN109510862A (zh) * 2018-09-19 2019-03-22 中国石油天然气集团有限公司 数据规约方法、装置及系统
CN111105066B (zh) * 2019-10-12 2023-07-07 平安科技(深圳)有限公司 资源受限项目调度方法、装置、计算机设备、及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279730A (zh) * 2010-06-10 2011-12-14 阿里巴巴集团控股有限公司 一种并行的数据处理方法、装置和并行的数据处理系统
CN102333126A (zh) * 2011-10-15 2012-01-25 西安交通大学 基于Hadoop 与虚拟流媒体服务器集群的流媒体点播方法
CN103218233A (zh) * 2013-05-09 2013-07-24 福州大学 Hadoop异构集群中的数据分配策略
CN103246570A (zh) * 2013-05-20 2013-08-14 百度在线网络技术(北京)有限公司 Hadoop的调度方法、系统及管理节点
CN103414761A (zh) * 2013-07-23 2013-11-27 北京工业大学 一种基于Hadoop架构的移动终端云资源调度方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279730A (zh) * 2010-06-10 2011-12-14 阿里巴巴集团控股有限公司 一种并行的数据处理方法、装置和并行的数据处理系统
CN102333126A (zh) * 2011-10-15 2012-01-25 西安交通大学 基于Hadoop 与虚拟流媒体服务器集群的流媒体点播方法
CN103218233A (zh) * 2013-05-09 2013-07-24 福州大学 Hadoop异构集群中的数据分配策略
CN103246570A (zh) * 2013-05-20 2013-08-14 百度在线网络技术(北京)有限公司 Hadoop的调度方法、系统及管理节点
CN103414761A (zh) * 2013-07-23 2013-11-27 北京工业大学 一种基于Hadoop架构的移动终端云资源调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Orchestrating an Ensemble of MapReduce Jobs for Minimizing Their Makespan;Abhishek Verma, Ludmila Cherkasova, Roy H. Campbell;《IEEE Transactions on Dependable and Secure Computing》;20131031;第2.2、3.1、3.2节 *

Also Published As

Publication number Publication date
CN103685492A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN103685492B (zh) Hadoop集群系统的调度方法、调度装置及其应用
CN107659433B (zh) 一种云资源调度方法及设备
CN102063336B (zh) 一种分布式计算多应用功能异步并发调度方法
US20130290976A1 (en) Scheduling mapreduce job sets
CN104657221A (zh) 一种云计算中基于任务分类的多队列错峰调度模型及方法
CN111861412B (zh) 面向完成时间优化的科学工作流调度方法及系统
CN103593323A (zh) 一种MapReduce任务资源配置参数的机器学习方法
CN102790698B (zh) 一种基于节能树的大规模计算集群任务调度方法
Thaman et al. Green cloud environment by using robust planning algorithm
Arabnejad et al. Multi-QoS constrained and profit-aware scheduling approach for concurrent workflows on heterogeneous systems
CN108737462A (zh) 一种基于图论的云计算数据中心任务调度方法
CN109815009B (zh) 一种csp下的资源调度与优化方法
CN104102533A (zh) 一种基于带宽感知的Hadoop调度方法和系统
Zhou et al. Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments
CN114610474A (zh) 一种异构超算环境下多策略的作业调度方法及系统
Ye et al. SHWS: Stochastic hybrid workflows dynamic scheduling in cloud container services
CN105227616A (zh) 一种遥感卫星地面处理系统任务动态创建与分配的方法
Natarajan Parallel queue scheduling in dynamic cloud environment using backfilling algorithm
Beaumont et al. Minimizing weighted mean completion time for malleable tasks scheduling
Xu et al. Expansion slot backfill scheduling for concurrent workflows with deadline on heterogeneous resources
Meddeber et al. Tasks assignment for Grid computing
Singh et al. Market-inspired dynamic resource allocation in many-core high performance computing systems
Hung et al. A dynamic scheduling method for collaborated cloud with thick clients.
CN115185651A (zh) 一种基于云计算的工作流优化调度算法
Genez et al. A flexible scheduler for workflow ensembles

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant