CN104598311A - 一种面向Hadoop的实时作业公平调度的方法和装置 - Google Patents
一种面向Hadoop的实时作业公平调度的方法和装置 Download PDFInfo
- Publication number
- CN104598311A CN104598311A CN201510039532.0A CN201510039532A CN104598311A CN 104598311 A CN104598311 A CN 104598311A CN 201510039532 A CN201510039532 A CN 201510039532A CN 104598311 A CN104598311 A CN 104598311A
- Authority
- CN
- China
- Prior art keywords
- time
- execution time
- job
- task
- execution
- 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.)
- Pending
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种面向Hadoop的实时作业公平调度的方法和装置,包括接收作业单元、建立模型单元、获得时间单元和分配资源单元;所述接收作业单元,用于接收提交的作业和该作业的期望执行时间;所述建立模型单元,用于建立代价模型;所述获得时间单元,用于计算获得所述作业的预估执行时间;所述分配资源单元,用于分配给所述作业实际需要的资源量。该方法和装置,针对用户提交的实时作业,通过读取对应的作业历史执行数据并建立代价模型,以获得作业的预估执行时间,再通过分析用户提交作业时设置的作业期望执行时间计算作业实际需要的资源量,从而使得用户实时提交的作业的计算任务,在用户设定的期望执行时间内完成。
Description
技术领域
本发明涉及高性能集群领域的任务调度方法,尤其涉及一种面向Hadoop的实时作业公平调度的方法和装置。
背景技术
Hadoop调度器的默认调度算法是Fifo,而且随着Hadoop技术的发展,后续又出现了一些其他的Hadoop调度算法,这些算法分别从不同角度对作业调度进行了优化,具体包括:
Fifo调度算法(First Input First Output)运行时,如果job1正在运行,job2进入队列不能马上运行,必须等job1运行完成才能开始job2的运行。此算法不能同时运行多个作业,会造成长作业长期占据计算资源,后面提交的job往往等待很久也得不到处理,不利于小作业的运行。
计算能力调度算法(Capacity Scheduler)支持多个对列,每个对列可配置一定的资源量。为了防止统一用户提交的job独占对列资源,该调度算法会对对列中统一用户提交作业所占资源的百分比进行限制,所有提交到对列中的job会共享该对列的资源,一旦出现空闲的便会分配给它,而且能有效地对集群的内存资源进行管理,支持内存密集型的应用。不过该计算能力调度算法不支持资源抢占及负载均衡,当存在高实时性的作业时,计算能力调度算法不能对其及时的调度,且不支持负载均衡的特性还会造成IO热点。
公平调度算法(Fair Scheduler)的目的是希望所有作业随着时间的推移,都能够平均地获得等同的共享资源,用以解决多用户多队列的调度问题。当一个作业单独运行时,它能够使用整个集群的资源。当有其他作业被提交时,系统会将空闲时间片分配给新的作业,使每个作业都能获得等量的CPU时间。这样小作业能在合理的时间完成,同时也能够正常调度长作业。公平调度算法较好的解决了小作业的问题,但是对于高实时作业以及对作业资源的控制上缺少能力,公平调度算法对待新作业采取基于时间的缺额算法,缺额的计算根据作业在集群的等待时间以及作业的数据量进行判断。这样的判断特性造成长作业的周期性提交,而使得小作业或者无输入的作业的饥饿现象。
LATE调度算法针对集群的异构进行了优化。分布式文件系统MFS使用需求向量来描述作业对各类资源的需求大小,满足了不同作业对资源的不同需求。将JobTracker上的资源管理和任务监控分布到不同节点上,降低了主节点的负载。
结合上述各类调度算法的特点,对实时作业的需求目前还存在以下几个缺陷:(1)高实时性的作业无法得到响应;(2)作业执行速度难以控制;(3)针对实时的小作业,Fair Scheduler基于缺额的资源抢占方法会使得大作业的缺额逐渐变大,而小作业迟迟得不到调度。
发明内容
本发明的目的在于提出一种面向Hadoop的实时作业公平调度的方法和装置,能够使用户实时提交的作业的计算任务在用户设定的期望执行时间内完成,实现针对用户实时提交的交互作业的高响应。
为达此目的,本发明采用以下技术方案:
第一方面,提供一种面向Hadoop的实时作业公平调度的方法,包括:
接收提交的作业和该作业的期望执行时间;
根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型;
将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;
根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
其中,所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
其中,所述代价模型基于MapReduce框架建立,所述MapReduce框架的作业任务执行阶段包括Map任务执行阶段和Reduce任务执行阶段,所述A为提交作业时的提交时间,所述D为作业的执行时间,所述D+A为预估执行时间,所述fσ为Map任务输出端的数据量,所述nm为Map任务的Slot数目,所述Cm为Map任务处理单元数据的时间,所述nr为Reduce任务的Slot数目,所述Cr为Reduce任务处理单元数据的时间,所述Cd为转换单元数据的通信时间,所述Cs为Reduce任务的Sort的速度;
所述将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述作业历史执行数据代入所述公式,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目;
根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量,分配给所述作业大于等于所述最小资源量的资源量。
其中,预设所述作业历史执行数据,包括:
接收提交的作业,执行所述作业;
在执行所述作业的过程中,保存所述作业的信息,所述信息包括作业的类型、执行作业对应的资源量、执行作业的时间;
对相同类型的作业对应的资源量、执行作业的时间进行统计。
其中,所述根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述预估执行时间和期望执行时间进行对比,根据对比结果设置所述作业实际的作业公平资源量;
所述作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,所述W’ij为作业的全局权重值,所述ΣiΣW’i*为所有可调度作业的全局权重值之和,所述Hc表示集群当前的计算资源量。
其中,所述代价模型基于以下条件建立:
每个节点的计算能力一致;
任务的执行进度随时间线性增加;
任务的进度可以表示成已完成工作量占总工作量的比例;
同种类型作业的任务工作量相同,执行所用时间相同。
第二方面,提供一种面向Hadoop的实时作业公平调度的装置,包括:
接收作业单元,用于接收提交的作业和该作业的期望执行时间;
建立模型单元,用于根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型;
获得时间单元,用于将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;
分配资源单元,用于根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
其中,所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
其中,所述代价模型基于MapReduce框架建立,所述MapReduce框架的作业任务执行阶段包括Map任务执行阶段和Reduce任务执行阶段,所述A为提交作业时的提交时间,所述D为作业的执行时间,所述D+A为预估执行时间,所述fσ为Map任务输出端的数据量,所述nm为Map任务的Slot数目,所述Cm为Map任务处理单元数据的时间,所述nr为Reduce任务的Slot数目,所述Cr为Reduce任务处理单元数据的时间,所述Cd为转换单元数据的通信时间,所述Cs为Reduce任务的Sort的速度;
其中,
所述获得时间单元,具体用于将所述作业历史执行数据代入所述公式,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目;
所述分配资源单元,具体用于根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量,分配给所述作业大于等于所述最小资源量的资源量,以便所述作业在所述期望执行时间内完成。
其中,预设所述作业历史执行数据,包括:
接收提交的作业,执行所述作业;
在执行所述作业的过程中,保存所述作业的信息,所述信息包括作业的类型、执行作业对应的资源量、执行作业的时间;
对相同类型的作业对应的资源量、执行作业的时间进行统计。
其中,所述根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述预估执行时间和期望执行时间进行对比,根据对比结果设置所述作业实际的作业公平资源量;
所述作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,所述W’ij为作业的全局权重值,所述ΣiΣW’i*为所有可调度作业的全局权重值之和,所述Hc表示集群当前的计算资源量。
其中,所述代价模型基于以下条件建立:
每个节点的计算能力一致;
任务的执行进度随时间线性增加;
任务的进度可以表示成已完成工作量占总工作量的比例;
同种类型作业的任务工作量相同,执行所用时间相同。
本发明的有益效果在于:一种面向Hadoop的实时作业公平调度的方法和装置,包括接收作业单元、建立模型单元、获得时间单元和分配资源单元;所述接收作业单元,用于接收提交的作业和该作业的期望执行时间;所述建立模型单元,用于根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型;所述获得时间单元,用于将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;所述分配资源单元,用于根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。该方法和装置,针对用户提交的实时作业,通过读取对应的作业历史执行数据并建立代价模型,以获得作业的预估执行时间,再通过分析用户提交作业时设置的作业期望执行时间计算作业实际需要的资源量,从而使得用户实时提交的作业的计算任务,在用户设定的期望执行时间内完成,实现针对用户实时提交的交互作业的高响应。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本发明实施例的内容和这些附图获得其他的附图。
图1是本发明提供的面向Hadoop的实时作业公平调度的方法第一个实施例的方法流程图。
图2是本发明提供的面向Hadoop的实时作业公平调度的装置第一个实施例的结构方框图。
具体实施方式
为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其是本发明提供的面向Hadoop的实时作业公平调度的方法第一个实施例的方法流程图。本发明实施例的面向Hadoop的实时作业公平调度的方法,适用于同构集群与负载均衡的条件。对于异构集群或负载不均衡的条件不适用。
该面向Hadoop的实时作业公平调度的方法,包括:
步骤S101、接收提交的作业和该作业的期望执行时间。
步骤S102、根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型。
步骤S103、将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间。
步骤S104、根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
其中,所述代价模型基于以下条件建立:
每个节点的计算能力一致;
任务的执行进度随时间线性增加;
任务的进度可以表示成已完成工作量占总工作量的比例;
同种类型作业的任务工作量相同,执行所用时间相同。
面向Hadoop的实时作业公平调度的方法的关键是对于作业执行时间的预估,即如何获得所述作业的预估执行时间。在做此预估之前,需先对集群做出以下假设:
(1)每个节点的计算能力是一致的(即同构集群);
(2)任务的执行进度随时间线性增加;
(3)一个任务的进度可以表示成已完成工作量占总工作量的比例。对于MapTask而言,可以表示成已读取数据量占总数据量(任务对应的数据分片大小)的比例;对于ReduceTask而言,可将其近似分为三个阶段,每个阶段各占总时间的1/3。
(4)同种类型作业的任务工作量是一样的,所用总时间相同。
用户提交作业时,设置其期望执行时间(通过参数mapred.job.deadline设置),该参数代表用户期望提交的作业在Hadoop集群中执行工作的时间,该参数有最高阀值与最低阀值,最高阀值为作业占用用户资源池所有资源对应的执行工作时间,最低阀值为该作业仅占用1个单位的Slot对应的执行工作时间。该面向Hadoop的实时作业公平调度的方法的核心,是如何预估用户提交作业的执行时间并且分配合适的资源,本方法采取推测执行机制与建立作业代价模型的方式来解决该核心问题。
本发明提供的面向Hadoop的实时作业公平调度的方法,针对用户提交的实时作业,通过读取对应的作业历史执行数据并建立代价模型,以获得作业的预估执行时间,再通过分析用户提交作业时设置的作业期望执行时间计算作业实际需要的资源量,从而使得用户实时提交的作业的计算任务,在用户设定的期望执行时间内完成,实现针对用户实时提交的交互作业的高响应。
以下为本发明提供的面向Hadoop的实时作业公平调度的方法的第二个实施例。本发明的第二个实施例与面向Hadoop的实时作业公平调度的方法第一个实施例的主要区别在于,增加了建立代价模型和分配资源量的具体说明。
该面向Hadoop的实时作业公平调度的方法,包括:
步骤S201、接收提交的作业和该作业的期望执行时间。
步骤S202、根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型。
步骤S203、将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间。
步骤S204、根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
其中,所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
其中,所述代价模型基于MapReduce框架建立,所述MapReduce框架的作业任务执行阶段包括Map任务执行阶段和Reduce任务执行阶段,所述A为提交作业时的提交时间,所述D为作业的执行时间,所述D+A为预估执行时间,所述fσ为Map任务输出端的数据量,所述nm为Map任务的Slot数目,所述Cm为Map任务处理单元数据的时间,所述nr为Reduce任务的Slot数目,所述Cr为Reduce任务处理单元数据的时间,所述Cd为转换单元数据的通信时间,所述Cs为Reduce任务的Sort的速度;
所述将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述作业历史执行数据代入所述公式,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目;
根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量,分配给所述作业大于等于所述最小资源量的资源量。
其中,集群中分配给该作业工作的所有Slot数目n=nm+nr;
F为过滤比,即Map输出端数据和输入端数据的比值,一般情况下0≤f≤1;
nmin m为作业能被调度的Map任务需被满足的最小数;
nmin r为作业能被调度的Reduce任务需被满足的最小数。
为了计算获得所述作业的预估执行时间,需考虑Map阶段的计算执行时间,Reduce阶段的计算执行时间和Reduce的拷贝阶段数据转换时间。
因此,作业的预估执行时间为:(fσCm)/nm+(fσCr)/nr+fσCd;
由于提交作业时,涉及提交时间A和执行时间D两个参量,因此提交的作业开始运行后需要满足:作业的预估执行时间小于等于用户设置的期望执行时间,即:Sm+(fσCm)/nm+(fσCr)/nr+fσCd≤A+D;
其中,所述Sm为作业第一个Map任务开始的时间。
设Reduce任务开始的最大时间Smax r=A+D-(fσCr)/nr-fσCd;
则Map任务执行时间要小于等于Reduce作业最大的开始时间:
即,Sm+(fσCm)/nm≤Smax r;
所以,(Smax r-Sm)nm≥(fσCm);得出,nm≥(fσCm)/(Smax r-Sm);
那么,Map任务达到期望执行时间的最低资源量为:
nmin m=[(fσCm)/(Smax r-Sm,)];
对应的Reduce任务达到期望执行时间的最低资源量为:
nmin r=[(fσCr)/(A+D-fσCd-Sr)];
在实际的作业提交和实时作业公平调度的过程中,实验发现作业的ReduceTask的个数远小于MapTask的个数,同时集群的Reduce Slot的空闲率较高。也就是说,在作业的Map工作执行完毕时,作业基本上都能获得ReduceTask所有的资源以运行用户编写的Reduce函数。于是代价模型的重点转向了如何预估Map阶段的执行时间。
则所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
nr是一个可知值(用户提交作业时可以指定,默认是3)。那么,上述公式中仅有一个未知变量,即Map端的资源量nm。通过分析预设的对应所述作业的作业历史执行数据,并将所述作业历史执行数据代入所述代价模型的公式,计算获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目,根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量。最小Map任务的Slot数目,即所述作业在所述期望执行时间内完成实际需要的最小资源量。
其中,预设所述作业历史执行数据,包括:
接收提交的作业,执行所述作业;
在执行所述作业的过程中,保存所述作业的信息,所述信息包括作业的类型、执行作业对应的资源量、执行作业的时间;
对相同类型的作业对应的资源量、执行作业的时间进行统计。
对每个作业建立代价模型以计算获得所述作业的预估执行时间,需要获取代价模型中对于这个作业的对应的预设的所述作业的作业历史执行数据。Hadoop中使用了2级作业描述,即作业级描述JobInProgress与任务级描述TaskInProgress。这两个数据结构中保存了一部分内容,该面向Hadoop的实时作业公平调度的方法主要实现对Hadoop中的作业Counter解析,并使用内存数据库存储。
对相同类型的作业对应的资源量、执行作业的时间进行统计的前提是,需要判断历史数据中的哪些作业与当前用户提交的实时作业的类型是一致的。这需要人工对同类作业进行训练,分析作业特征因素从而指导历史分析。
其中,所述根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述预估执行时间和期望执行时间进行对比,根据对比结果设置所述作业实际的作业公平资源量;
所述作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,所述W’ij为作业的全局权重值,所述ΣiΣW’i*为所有可调度作业的全局权重值之和,所述Hc表示集群当前的计算资源量。
该面向Hadoop的实时作业公平调度的方法,根据所述最小Map任务的Slot数目,可以获取作业在集群中实际需要的作业公平资源量。设置作业公平资源量后,还需要考虑如何控制已被占用的资源被抢占给实时作业执行。考虑到实际生产环境中资源大多是已经被占用的,通过设置实时作业的作业公平资源量并不能立刻得到该作业公平资源量所影响的公平共享量所对应的资源.因为在Fair Scheduler中采用了公平缺额的方式调度长时间没有获取到公平共享量所对应资源的作业。因而通过设置最低Pool资源抢占时间解决大作业的长时间缺额情况导致的小作业饥饿现象。
编写一个权重调整器,并通过参数mapred.fair scheduler.weightadjuster使之生效,此时,作业权重值即为Weight Adjuster中adjust Weight的返回值。具体计算方式如下:
作业的原始权重值Wij=fu[In(1+Rij)/log2×Pi];
其中,fu是用户自定义的调整函数,即Weight Adjuster;Rij是作业还未完成的任务数量;Pi是作业的优先级。
作业的全局权重值W’ij=Wij/(ΣWi*)×Wp i;
其中,ΣWi*表示作业池中所有可调度作业的原始权重值之和,Wp i表示作业池的权重值。
作业的最小资源量Cij min=W’ij/(ΣW’i*)×Ci;
其中,ΣW’i*表示作业池i中所有可调度作业的全局权重值之和;Ci表示作业池中任意作业i配置的计算资源量。
作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,ΣiΣW’i*表示所有可调度作业的全局权重值之和,Hc表示集群当前的计算资源量。
现有的算法无论是Fair Scheduler或者Capacity Scheduler都不能很好的处理用户实时提交的作业。在Fair Scheduler的实时调度算法中,当集群空闲时作业能够得到资源执行,但是当集群满载时,针对实时的作业,FairScheduler不能很好的调度合适的资源给予实时作业执行。常见的状况是实时作业需要等待Fair Scheduler重新进行公平共享量的计算时,对资源池的资源进行抢占时才能获得与其公平共享量相适应的资源。而Capacity Scheduler调度算法仅仅是Fifo调度算法的多队列的实现。针对实时的作业,如果作业在队列中的顺序靠后的话也需要等待其他作业的执行。本发明提供的面向Hadoop的实时作业公平调度的方法,基于Fair Scheduler的实时调度算法并利用FairScheduler中已有的机制简单高效的解决了这个问题。
本发明提供的面向Hadoop的实时作业公平调度的方法,也可称为FCBS算法,其设计目的主要包括:
(1)有效的调配系统的资源,实现用户实时提交的作业能够快速响应并执行。
(2)快速响应的实时作业可以设置期望执行时间。该公平调度方法通过对作业进行代价建模从而获得作业的预估执行时间从而设置合适的作业公平资源量。
(3)在保证实时作业的高响应前提下,也要保证原始的作业正常执行。
该公平调度方法的设计基于Fair Scheduler的实时作业调度算法,主要使用了Fair Scheduler的可插拔模块Weight Adjuster。Fair Scheduler的实时调度算法中设置的更新作业的线程。线程每个500ms(可设置)进行一次作业更新的操作,更新的信息包括作业的公平共享量、调度算法日志等信息。基于此线程,该公平调度方法实现的Weight Adjuster程序也是每隔500ms就会被每个作业调用一次。为了避免已经被调度的作业重复建立代价模型,该公平调度方法在内存数据库中设置了作业调度标号。对于不存在标号的作业才可以生成代价模型从而获得预估执行时间。与Weight Adjuster相关的类文件还包括代价模型的实体类,历史数据分析类与代价模型分析类。
本发明提供的面向Hadoop的实时作业公平调度的方法,能够使用户实时提交的作业在用户设定的期望执行时间内完成,针对用户实时提交的交互作业进行高响应。
以下为本发明实施例提供的面向Hadoop的实时作业公平调度的装置的实施例。面向Hadoop的实时作业公平调度的装置的实施例与上述的面向Hadoop的实时作业公平调度的方法的实施例属于同一构思,面向Hadoop的实时作业公平调度的装置的实施例中未详尽描述的细节内容,可以参考上述面向Hadoop的实时作业公平调度的方法的实施例。
请参考图2,其是本发明提供的面向Hadoop的实时作业公平调度的装置第一个实施例的结构方框图。
该面向Hadoop的实时作业公平调度的装置,包括:
接收作业单元10,用于接收提交的作业和该作业的期望执行时间。
建立模型单元20,用于根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型。
获得时间单元30,用于将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间。
分配资源单元40,用于根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
本发明提供的面向Hadoop的实时作业公平调度的装置,针对用户提交的实时作业,通过读取对应的作业历史执行数据并建立代价模型,以获得作业的预估执行时间,再通过分析用户提交作业时设置的作业期望执行时间计算作业实际需要的资源量,从而使得用户实时提交的作业的计算任务,在用户设定的期望执行时间内完成,实现针对用户实时提交的交互作业的高响应。
以下是本发明实施例提供的面向Hadoop的实时作业公平调度的装置第二个实施例。
该面向Hadoop的实时作业公平调度的装置,包括:
接收作业单元10,用于接收提交的作业和该作业的期望执行时间。
建立模型单元20,用于根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型。
获得时间单元30,用于将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间。
分配资源单元40,用于根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
其中,所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
其中,所述代价模型基于MapReduce框架建立,所述MapReduce框架的作业任务执行阶段包括Map任务执行阶段和Reduce任务执行阶段,所述A为提交作业时的提交时间,所述D为作业的执行时间,所述D+A为预估执行时间,所述fσ为Map任务输出端的数据量,所述nm为Map任务的Slot数目,所述Cm为Map任务处理单元数据的时间,所述nr为Reduce任务的Slot数目,所述Cr为Reduce任务处理单元数据的时间,所述Cd为转换单元数据的通信时间,所述Cs为Reduce任务的Sort的速度;
其中,
所述获得时间单元30,具体用于将所述作业历史执行数据代入所述公式,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目;
所述分配资源单元40,具体用于根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量,分配给所述作业大于等于所述最小资源量的资源量,以便所述作业在所述期望执行时间内完成。
其中,预设所述作业历史执行数据,包括:
接收提交的作业,执行所述作业;
在执行所述作业的过程中,保存所述作业的信息,所述信息包括作业的类型、执行作业对应的资源量、执行作业的时间;
对相同类型的作业对应的资源量、执行作业的时间进行统计。
其中,所述根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述预估执行时间和期望执行时间进行对比,根据对比结果设置所述作业实际的作业公平资源量;
所述作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,所述W’ij为作业的全局权重值,所述ΣiΣW’i*为所有可调度作业的全局权重值之和,所述Hc表示集群当前的计算资源量。
其中,所述代价模型基于以下条件建立:
每个节点的计算能力一致;
任务的执行进度随时间线性增加;
任务的进度可以表示成已完成工作量占总工作量的比例;
同种类型作业的任务工作量相同,执行所用时间相同。
本发明提供的面向Hadoop的实时作业公平调度的装置,能够使用户实时提交的作业在用户设定的期望执行时间内完成,针对用户实时提交的交互作业进行高响应。
一种面向Hadoop的实时作业公平调度的方法和装置,能够使用户实时提交的作业在用户设定的期望执行时间内完成,针对用户实时提交的交互作业进行高响应。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括存储器、磁盘或光盘等。
以上内容仅为本发明的较佳实施例,对于本领域的普通技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种面向Hadoop的实时作业公平调度的方法,其特征在于,包括:
接收提交的作业和该作业的期望执行时间;
根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型;
将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;
根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
2.根据权利要求1所述的面向Hadoop的实时作业公平调度的方法,其特征在于,所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
其中,所述代价模型基于MapReduce框架建立,所述MapReduce框架的作业任务执行阶段包括Map任务执行阶段和Reduce任务执行阶段,所述A为提交作业时的提交时间,所述D为作业的执行时间,所述D+A为预估执行时间,所述fσ为Map任务输出端的数据量,所述nm为Map任务的Slot数目,所述Cm为Map任务处理单元数据的时间,所述nr为Reduce任务的Slot数目,所述Cr为Reduce任务处理单元数据的时间,所述Cd为转换单元数据的通信时间,所述Cs为Reduce任务的Sort的速度;
所述将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述作业历史执行数据代入所述公式,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目;
根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量,分配给所述作业大于等于所述最小资源量的资源量。
3.根据权利要求1所述的面向Hadoop的实时作业公平调度的方法,其特征在于,预设所述作业历史执行数据,包括:
接收提交的作业,执行所述作业;
在执行所述作业的过程中,保存所述作业的信息,所述信息包括作业的类型、执行作业对应的资源量、执行作业的时间;
对相同类型的作业对应的资源量、执行作业的时间进行统计。
4.根据权利要求1所述的面向Hadoop的实时作业公平调度的方法,其特征在于,所述根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述预估执行时间和期望执行时间进行对比,根据对比结果设置所述作业实际的作业公平资源量;
所述作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,所述W’ij为作业的全局权重值,所述ΣiΣW’i*为所有可调度作业的全局权重值之和,所述Hc表示集群当前的计算资源量。
5.根据权利要求1所述的面向Hadoop的实时作业公平调度的方法,其特征在于,所述代价模型基于以下条件建立:
每个节点的计算能力一致;
任务的执行进度随时间线性增加;
任务的进度可以表示成已完成工作量占总工作量的比例;
同种类型作业的任务工作量相同,执行所用时间相同。
6.一种面向Hadoop的实时作业公平调度的装置,其特征在于,包括:
接收作业单元,用于接收提交的作业和该作业的期望执行时间;
建立模型单元,用于根据所述作业,获得预设的对应所述作业的作业历史执行数据,并建立代价模型;
获得时间单元,用于将所述作业历史执行数据代入所述代价模型,计算获得所述作业的预估执行时间;
分配资源单元,用于根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,以便所述作业在所述期望执行时间内完成。
7.根据权利要求6所述的面向Hadoop的实时作业公平调度的装置,其特征在于,所述代价模型的公式为:D+A≥fσ/(nm×Cm)+fσ/(nr×Cr)+fσ/Cd+fσ/Cs;
其中,所述代价模型基于MapReduce框架建立,所述MapReduce框架的作业任务执行阶段包括Map任务执行阶段和Reduce任务执行阶段,所述A为提交作业时的提交时间,所述D为作业的执行时间,所述D+A为预估执行时间,所述fσ为Map任务输出端的数据量,所述nm为Map任务的Slot数目,所述Cm为Map任务处理单元数据的时间,所述nr为Reduce任务的Slot数目,所述Cr为Reduce任务处理单元数据的时间,所述Cd为转换单元数据的通信时间,所述Cs为Reduce任务的Sort的速度;
其中,
所述获得时间单元,具体用于将所述作业历史执行数据代入所述公式,计算获得所述作业的预估执行时间;根据所述预估执行时间和期望执行时间,获得所述作业在所述期望执行时间内完成的最小Map任务的Slot数目;
所述分配资源单元,具体用于根据所述最小Map任务的Slot数目,获得所述作业在所述期望执行时间内完成实际需要的最小资源量,分配给所述作业大于等于所述最小资源量的资源量,以便所述作业在所述期望执行时间内完成。
8.根据权利要求6所述的面向Hadoop的实时作业公平调度的装置,其特征在于,预设所述作业历史执行数据,包括:
接收提交的作业,执行所述作业;
在执行所述作业的过程中,保存所述作业的信息,所述信息包括作业的类型、执行作业对应的资源量、执行作业的时间;
对相同类型的作业对应的资源量、执行作业的时间进行统计。
9.根据权利要求6所述的面向Hadoop的实时作业公平调度的装置,其特征在于,所述根据所述预估执行时间和期望执行时间,分配给所述作业实际需要的资源量,包括:
将所述预估执行时间和期望执行时间进行对比,根据对比结果设置所述作业实际的作业公平资源量;
所述作业公平资源量Cij=W’ij/(ΣiΣW’i*)×Hc;
其中,所述W’ij为作业的全局权重值,所述ΣiΣW’i*为所有可调度作业的全局权重值之和,所述Hc表示集群当前的计算资源量。
10.根据权利要求6所述的面向Hadoop的实时作业公平调度的装置,其特征在于,所述代价模型基于以下条件建立:
每个节点的计算能力一致;
任务的执行进度随时间线性增加;
任务的进度可以表示成已完成工作量占总工作量的比例;
同种类型作业的任务工作量相同,执行所用时间相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510039532.0A CN104598311A (zh) | 2015-01-26 | 2015-01-26 | 一种面向Hadoop的实时作业公平调度的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510039532.0A CN104598311A (zh) | 2015-01-26 | 2015-01-26 | 一种面向Hadoop的实时作业公平调度的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104598311A true CN104598311A (zh) | 2015-05-06 |
Family
ID=53124126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510039532.0A Pending CN104598311A (zh) | 2015-01-26 | 2015-01-26 | 一种面向Hadoop的实时作业公平调度的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598311A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205469A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种基于MapReduce的资源分配方法及服务器 |
CN108446169A (zh) * | 2017-02-16 | 2018-08-24 | 阿里巴巴集团控股有限公司 | 一种作业调度方法及装置 |
CN109324890A (zh) * | 2017-07-31 | 2019-02-12 | 华为技术有限公司 | 资源管理方法、装置及计算机可读存储介质 |
CN112559859A (zh) * | 2020-12-08 | 2021-03-26 | 杭州海康威视系统技术有限公司 | 资源推荐方法、装置、电子设备及机器可读存储介质 |
CN113391911A (zh) * | 2021-07-05 | 2021-09-14 | 中国工商银行股份有限公司 | 一种大数据资源动态调度方法、装置和设备 |
CN116360990A (zh) * | 2023-03-27 | 2023-06-30 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8087020B2 (en) * | 2003-08-14 | 2011-12-27 | Kabushiki Kaisha Toshiba | Method and system for performing real-time operation |
CN103064664A (zh) * | 2012-11-28 | 2013-04-24 | 华中科技大学 | 一种基于性能预估的Hadoop参数自动优化方法和系统 |
CN104298550A (zh) * | 2014-10-09 | 2015-01-21 | 南通大学 | 一种面向Hadoop的动态调度方法 |
-
2015
- 2015-01-26 CN CN201510039532.0A patent/CN104598311A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8087020B2 (en) * | 2003-08-14 | 2011-12-27 | Kabushiki Kaisha Toshiba | Method and system for performing real-time operation |
CN103064664A (zh) * | 2012-11-28 | 2013-04-24 | 华中科技大学 | 一种基于性能预估的Hadoop参数自动优化方法和系统 |
CN104298550A (zh) * | 2014-10-09 | 2015-01-21 | 南通大学 | 一种面向Hadoop的动态调度方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205469A (zh) * | 2016-12-20 | 2018-06-26 | 华为技术有限公司 | 一种基于MapReduce的资源分配方法及服务器 |
CN108205469B (zh) * | 2016-12-20 | 2023-12-15 | 华为技术有限公司 | 一种基于MapReduce的资源分配方法及服务器 |
CN108446169A (zh) * | 2017-02-16 | 2018-08-24 | 阿里巴巴集团控股有限公司 | 一种作业调度方法及装置 |
CN108446169B (zh) * | 2017-02-16 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 一种作业调度方法及装置 |
CN109324890A (zh) * | 2017-07-31 | 2019-02-12 | 华为技术有限公司 | 资源管理方法、装置及计算机可读存储介质 |
CN112559859A (zh) * | 2020-12-08 | 2021-03-26 | 杭州海康威视系统技术有限公司 | 资源推荐方法、装置、电子设备及机器可读存储介质 |
CN113391911A (zh) * | 2021-07-05 | 2021-09-14 | 中国工商银行股份有限公司 | 一种大数据资源动态调度方法、装置和设备 |
CN113391911B (zh) * | 2021-07-05 | 2024-03-26 | 中国工商银行股份有限公司 | 一种大数据资源动态调度方法、装置和设备 |
CN116360990A (zh) * | 2023-03-27 | 2023-06-30 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
CN116360990B (zh) * | 2023-03-27 | 2024-01-09 | 合芯科技有限公司 | 分布式计算任务合理性预判方法、系统、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Praveenchandar et al. | RETRACTED ARTICLE: Dynamic resource allocation with optimized task scheduling and improved power management in cloud computing | |
Cheng et al. | Cost-aware job scheduling for cloud instances using deep reinforcement learning | |
Rimal et al. | Workflow scheduling in multi-tenant cloud computing environments | |
Mazumdar et al. | Power efficient server consolidation for cloud data center | |
CN104598311A (zh) | 一种面向Hadoop的实时作业公平调度的方法和装置 | |
US20160371126A1 (en) | Scheduling mapreduce jobs in a cluster of dynamically available servers | |
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理系统 | |
US9973512B2 (en) | Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time | |
WO2013082119A1 (en) | Cloud provisioning accelerator | |
US9471387B2 (en) | Scheduling in job execution | |
KR20120082598A (ko) | 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템 | |
CN103257896B (zh) | 一种云环境下的Max-D作业调度方法 | |
Naik | A deadline-based elastic approach for balanced task scheduling in computing cloud environment | |
Xhafa et al. | Immediate mode scheduling of independent jobs in computational grids | |
CN115952054A (zh) | 一种仿真任务资源管理方法、装置、设备及介质 | |
CN110308991A (zh) | 一种基于随机任务的数据中心节能优化方法及系统 | |
CN113742059B (zh) | 任务分配方法、装置、计算机设备和存储介质 | |
Jiang et al. | PB-FCFS-a task scheduling algorithm based on FCFS and backfilling strategy for grid computing | |
Hu et al. | Low latency big data processing without prior information | |
Narang et al. | Various load balancing techniques in cloud computing | |
CN110955644A (zh) | 一种存储系统的io控制方法、装置、设备及存储介质 | |
Li et al. | An Efficient Two-Level Hierarchy Job Scheduling and Task Dispatching Strategy for Cluster Rendering System. | |
US11681353B1 (en) | Power capping in a composable computing system | |
Weihua et al. | Analysis of information management and scheduling technology in Hadoop | |
Ghiț et al. | An approximate bribe queueing model for bid advising in cloud spot markets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150506 |