CN102609303A - MapReduce***的慢任务调度方法和装置 - Google Patents

MapReduce***的慢任务调度方法和装置 Download PDF

Info

Publication number
CN102609303A
CN102609303A CN2012100161432A CN201210016143A CN102609303A CN 102609303 A CN102609303 A CN 102609303A CN 2012100161432 A CN2012100161432 A CN 2012100161432A CN 201210016143 A CN201210016143 A CN 201210016143A CN 102609303 A CN102609303 A CN 102609303A
Authority
CN
China
Prior art keywords
computing node
slow
node
task
computing
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.)
Granted
Application number
CN2012100161432A
Other languages
English (en)
Other versions
CN102609303B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210016143.2A priority Critical patent/CN102609303B/zh
Publication of CN102609303A publication Critical patent/CN102609303A/zh
Application granted granted Critical
Publication of CN102609303B publication Critical patent/CN102609303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Supply And Distribution Of Alternating Current (AREA)

Abstract

本发明提供一种MapReduce***的慢任务调度方法和装置,其中方法包括:分别获取MapReduce***中的各计算节点的计算能力值,根据计算能力值将各计算节点排列为慢节点队列,并选取队列中的前M个计算节点作为目标计算节点;获取目标计算节点在加载待调度的慢任务之后预估的计算能力值,并将目标计算节点与其他各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列,并预设慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;在目标计算节点预估的计算能力值大于评价基准节点的计算能力值时,将待调度的慢任务调度到目标计算节点。本发明有效抑制了慢任务调度时抖动现象的发生。

Description

MapReduce***的慢任务调度方法和装置
技术领域
本发明涉及计算技术,尤其涉及一种MapReduce***的慢任务调度方法和装置。
背景技术
MapReduce作为一种基本计算框架,被广泛使用在互联网应用中例如云计算环境。随着云计算环境的发展,逐渐采用虚拟化技术,一个物理主机上可能存在多个虚拟机;由于不同物理主机的计算能力存在较大差异,并且同一个物理主机上的各个虚拟机之间也存在着较大的性能差异,导致MapReduce***的节点异构性非常突出,该节点异构性指的是不同计算节点的处理速度存在差异(一个虚拟机相当于一个计算节点)。计算任务调度到不同的计算节点,得到处理结果的响应时间是不同的,当MapReduce***中的主控节点发现某计算节点对计算任务的执行速度太慢,并确定该计算任务为慢任务时,为提高处理速度,则将该慢任务调度到另一计算节点上同时执行,此称为慢任务的调度。
具体的,MapReduce***的其中一种实现机制Hadoop,其慢任务调度的方案为:Hadoop假设***中的所有计算节点以相同速度处理计算任务,对计算任务定义了一个介于0和1之间的进程指标,并设定一个固定的门限值,只要进程指标满足所述门限值的设定条件,则确定该计算任务为慢任务,并执行慢任务调度。Hadoop是按照临近节点调度原则进行慢任务调度,即将慢任务调度到物理传输距离最近的临近节点上。上述方案的缺点是:有太多的计算任务被确定为慢任务,过多的慢任务调度占用了较多的***资源;并且,临近调度原则还可能出现在调度后临近节点运行更慢,该慢任务还会进一步被调度,导致慢任务被多次调度,即出现了***调度的抖动。
MapReduce***的另外一种实现机制LATE对上述的Hadoop进行了优化,其规定了一个慢任务调度比例,例如10%,只有10%的慢任务能够被调度,以避免过多的慢任务被调度而占用较多的***资源。并且,LATE还根据计算任务完成所需的剩余时间定义了慢节点队列,规定该队列最后25%的节点为慢节点,不会将慢任务调度到所述的慢节点,以避免节点运行更慢。但是实践发现,LATE仍然不能解决***调度的抖动问题,即使选择一个位于所述最后25%之外的计算节点进行慢任务调度,也仍然有可能使得该节点在加载该慢任务后计算能力下降太多而变慢,所调度的慢任务仍然是慢任务,将被再次调度,导致出现慢任务多次调度的***抖动现象。
发明内容
本发明的第一个方面是提供一种MapReduce***的慢任务调度方法,以有效抑制MapReduce***慢任务调度时抖动现象的发生。
本发明的另一个方面是提供一种MapReduce***的慢任务调度装置,以有效抑制MapReduce***慢任务调度时抖动现象的发生。
本发明提供的MapReduce***的慢任务调度方法,包括:
分别获取MapReduce***中的各计算节点的计算能力值,所述计算节点的计算能力值
Figure BDA0000132068450000021
所述v1......vm表示所述计算节点上的各计算任务的处理速度,所述
Figure BDA0000132068450000022
表示所述各计算任务分别所属的工作的平均处理速度,所述m表示所述计算节点上的计算任务的总数量;
根据所述计算能力值从大到小的顺序将所述各计算节点排列为慢节点队列,并选取所述慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点,所述M为自然数;
分别获取M个所述目标计算节点在加载待调度的慢任务之后预估的计算能力值,所述预估的计算能力
Figure BDA0000132068450000023
所述vi表示目标计算节点上的待调度慢任务的处理速度,所述
Figure BDA0000132068450000024
表示目标计算节点上的待调度慢任务所属的工作的平均处理速度;
根据所述目标计算节点的预估的计算能力值以及所述目标计算节点之外的各计算节点的计算能力值,将所述目标计算节点与所述目标计算节点之外的各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列,并预设所述慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;
在所述目标计算节点预估的计算能力值大于所述评价基准节点的计算能力值时,将所述待调度的慢任务调度到所述目标计算节点。
本发明提供的MapReduce***的慢任务调度装置,包括:参数获取单元、能力预估单元、队列排列单元和调度处理单元;
所述参数获取单元,用于分别获取MapReduce***中的各计算节点的计算能力值,所述计算节点的计算能力值所述v1......vm表示所述计算节点上的各计算任务的处理速度,所述
Figure BDA0000132068450000032
表示所述各计算任务分别所属的工作的平均处理速度,所述m表示所述计算节点上的计算任务的总数量;
所述能力预估单元,用于选取所述队列排列单元产生的慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点,所述M为自然数;并分别获取M个所述目标计算节点在加载待调度的慢任务之后预估的计算能力值,所述预估的计算能力
Figure BDA0000132068450000033
所述vi表示目标计算节点上的待调度慢任务的处理速度,所述
Figure BDA0000132068450000034
表示目标计算节点上的待调度慢任务所属的工作的平均处理速度;
所述队列排列单元,用于根据所述计算能力值从大到小的顺序将所述各计算节点排列为慢节点队列;以及,根据所述目标计算节点的预估的计算能力值以及所述目标计算节点之外的各计算节点的计算能力值,将所述目标计算节点与所述目标计算节点之外的各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列;
所述调度处理单元,用于预设所述慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;并在所述目标计算节点预估的计算能力值大于所述评价基准节点的计算能力值时,将所述待调度的慢任务调度到所述目标计算节点。
本发明MapReduce***的慢任务调度方法的技术效果是:通过在将慢任务调度至目标计算节点之前,预估该目标计算节点加载待调度的慢任务之后的计算能力值,并在该预估的计算能力值大于评价基准节点的计算能力值时,才将待调度的慢任务调度到所述目标计算节点,可以保证该目标计算节点在加载慢任务后不会使得计算能力下降太多,从而消除慢任务,防止了慢任务的多次调度,有效抑制了慢任务调度时抖动现象的发生。
本发明MapReduce***的慢任务调度装置的技术效果是:通过在将慢任务调度至目标计算节点之前,预估该目标计算节点加载待调度的慢任务之后的计算能力值,并在该预估的计算能力值大于评价基准节点的计算能力值时,才将待调度的慢任务调度到所述目标计算节点,可以保证该目标计算节点在加载慢任务后不会使得计算能力下降太多,从而消除慢任务,防止了慢任务的多次调度,有效抑制了慢任务调度时抖动现象的发生。
附图说明
图1为本发明MapReduce***的慢任务调度方法实施例的流程示意图;
图2为本发明MapReduce***的慢任务调度装置实施例的结构示意图。
具体实施方式
为了对本发明实施例的MapReduce***的慢任务调度方法的说明更加清楚,首先对MapReduce***的结构和工作原理做简单说明:
MapReduce***通常包括一个主控节点(master)和多个计算节点(slave);主控节点负责管理计算节点。主控节点接收客户端的数据计算请求,该请求的数据计算可以称为一个工作(Job),工作可以有多种类型,例如,数据查询工作、数据平均工作等。主控节点会将工作拆分为多个计算任务(task),并将计算任务分发至各计算节点,由各计算节点具体执行计算任务的处理。MapReduce***将工作的处理分为两个阶段:Map阶段和Reduce阶段,即计算任务包括两种类型,Map类型的计算任务和Reduce类型的计算任务,Map阶段主要是将拆分的各计算任务分发到各计算节点处理,Reduce阶段则主要是将各计算节点的计算结果进行汇总;当所有计算节点的计算任务都做完时,主控节点将计算结果汇总并报告给客户端。其中,在处理过程中,计算节点与主控节点之间存在着心跳,计算节点可以将其计算任务的进度情况携带在心跳报文中通知主控节点;并在处理完计算任务处于空闲时,计算节点会主动向主控节点请求分配计算任务。
本发明的实施例遵循如下假设条件:第一、假设MapReduce***中的各计算节点是异构的;第二、假设MapReduce***所处理的各工作是异构的:不同类型的工作之间差异明显,产生的数据量不同。
在以上介绍的基础上,下面对本发明实施例的慢任务调度方法和装置进行说明:
图1为本发明MapReduce***的慢任务调度方法实施例的流程示意图,需要说明的是,如下的101~103只是对该方法中所执行的各动作的列举,并没有对其之间的执行顺序做严格限制。如图1所示,该方法可以包括:
101、分别获取MapReduce***中的各计算节点的计算能力值;
本实施例中,MapReduce***的主控节点可以获取各计算节点的计算能力值。可选的,主控节点可以按照如下获取方式得到各计算节点的计算能力:
各计算节点可以计算其处理的计算任务的处理速度,例如,计算节点A上处理计算任务a、计算任务b;计算节点B上处理计算任务c、计算任务d;则计算节点A可以分别计算计算任务a、计算任务b的处理速度,计算节点B可以分别计算计算任务c、计算任务d的处理速度。
不同类型的计算任务,其处理速度有不同的计算方式。例如,假设计算节点A上所处理的计算任务a、计算任务b是Map类型的计算任务,计算节点B上所处理的计算任务c、计算任务d是Reduce类型的计算任务。则,对于Map类型的计算任务,其处理速度v=p/t,其中,p为计算节点当前处理完成的计算任务的数据量,所述t为所述数据量的计算任务的处理耗时;对于Reduce类型的计算任务,其处理速度v=p/t,其中,由于Reduce操作一般分为三个阶段:拷贝、排序和规约;如果计算任务正处于拷贝阶段,则
Figure BDA0000132068450000051
如果计算任务处于排序阶段,则如果计算任务正处于归约阶段,则
Figure BDA0000132068450000053
t为计算任务的处理耗时。
各计算节点可以通过与主控节点之间的心跳消息,携带上述计算得到的计算任务的处理速度上报至主控节点。主控节点可以根据所述的处理速度,计算该计算任务所属的工作的平均处理速度。
例如,上述的计算任务a、计算任务c是由工作(job)G1拆分成的,即,主控节点在接收到客户端请求处理的工作G1后,将该G1拆分为计算任务a、计算任务c,并分发给所述的计算节点A和计算节点B处理;该两个计算节点将其上处理的计算任务的处理速度反馈给主控节点,主控节点就可以根据该处理速度得到工作G1的平均处理速度。所述平均处理速度
Figure BDA0000132068450000054
所述v表示所述工作所拆分成的各计算任务的处理速度,所述n表示工作所拆分成的各计算任务所在的计算节点的总个数;假设计算节点A反馈的计算任务a的处理速度为v1,计算节点B反馈的计算任务c的处理速度为v2,则工作G1的平均处理速度
Figure BDA0000132068450000061
同理,假设计算任务b和计算任务d是由工作G2拆分,计算任务b的处理速度为v3,计算任务d的处理速度为v4,则工作G2平均处理速度
Figure BDA0000132068450000062
在上述计算各工作的平均处理速度的基础上,各计算节点的计算能力可以按照如下公式计算:
Figure BDA0000132068450000063
其中,v1......vm表示目标计算节点上的各计算任务的处理速度,
Figure BDA0000132068450000064
表示各计算任务分别所属的工作的平均处理速度,所述m表示所述计算节点上的各计算任务的数量。例如,计算节点A的计算能力
Figure BDA0000132068450000065
Figure BDA0000132068450000066
可选的,主控节点可以将计算得到的各工作的平均处理速度发送至各计算节点,由各计算节点得到自己的计算能力值,再将该计算能力上报至主控节点;或者,也可以由主控节点根据计算节点上报的处理速度、以及自己计算的各工作的平均处理速度,得到各计算节点的计算能力值。
本实施例通过上述的技术方案,提供了计算节点的计算能力的评价方法和评价指标,并且,该计算能力的计算中,考虑了不同类型工作的异构性和计算节点的异构性,即,考虑了不同计算节点的处理速度,以及,由于各个类型的工作不具有可比性,所以采用了
Figure BDA0000132068450000067
来做归一化处理。上述方式使得计算节点的计算能力更加合理的得到反映。
102、根据计算能力值从大到小的顺序将所述各计算节点排列为慢节点队列,并选取所述慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点;并获取目标计算节点在加载待调度的慢任务之后预估的计算能力值;
可选的,主控节点可以在接收到MapReduce***中的某个计算节点发送的申请计算任务消息时,开始进行慢任务的调度处理。
主控节点在获取到计算任务的处理速度以及计算节点的计算能力时,即可维护两个队列,慢任务队列和慢节点队列。其中,慢任务队列是主控节点根据计算任务的处理速度对MapReduce***中的正在处理的计算任务进行排队;慢节点队列是主控节点根据计算节点的计算能力对各计算节点进行排队,可以是根据计算能力值从大到小的顺序将各计算节点排列为慢节点队列。并且,本实施例中,主控节点可以从慢任务队列的队尾开始,取最后10%的计算任务为慢任务;具体实施中,该比例值可以变化,例如,可以测量任务完成速度的方差,如果方差较小,可以适当缩减这个比例。
本实施例中,会选取所述慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点,所述M为自然数;例如,具体实施中,可以选取慢节点队列中的前两个节点或者前三个节点等,数量可以自主设定,但是尽量选择队列中靠前的几个节点。需要将慢任务同时调度到上述的M个计算节点,上述的M个目标计算节点均为计划加载慢任务的节点。在将慢任务调度至上述的目标计算节点之前,将对目标计算节点加载慢任务之后的计算能力进行预评估。
具体的,目标计算节点的计算能力
Figure BDA0000132068450000071
其中,所述vi表示目标计算节点上的待调度慢任务的处理速度,所述
Figure BDA0000132068450000072
表示目标计算节点上的待调度慢任务所属的工作的平均处理速度,所述v1......vm表示目标计算节点上的所述待调度慢任务之外的各计算任务的处理速度,所述表示所述待调度慢任务之外的各计算任务分别所属的工作的平均处理速度,所述m表示所述目标计算节点上的待调度慢任务之外的计算任务的数量。
例如,假设计划将计算任务c加载到计算节点A上,则预估计算节点A的计算能力
Figure BDA0000132068450000074
Figure BDA0000132068450000075
Figure BDA0000132068450000076
103、将所述目标计算节点与所述目标计算节点之外的各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列;
由于在102中对慢节点队列中的目标计算节点的计算能力进行了重新预估,所以本步骤中,将根据目标计算节点的预估后的计算能力,以及所述目标计算节点之外的各计算节点的计算能力值,对慢节点队列进行重新排队。
104、在所述目标计算节点预估的计算能力值大于所述评价基准节点的计算能力值时,将所述待调度的慢任务调度到所述目标计算节点。
本实施例中,预设103中重新排队的所述慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;例如,可以选择所述N与所述MapReduce***中的计算节点的总数的比值为10%。即,假设MapReduce***中有100个计算节点,该100个计算节点所组成的慢节点队列中,队列后边的一部分节点计算能力较低,处理速度较慢,可以称为慢节点;其中从队尾向前的倒数第10个计算节点则为评价基准节点。
如果所述目标计算节点预估的计算能力值大于评价基准节点的计算能力值,则表明如果将待调度的慢任务加载到目标计算节点后,目标计算节点的计算能力会下降但是不会下降到慢节点队列的后10%,也相应的表明,由于目标计算节点的计算能力较强,因此,所加载的慢任务在目标计算节点上不会再成为新的慢任务,则将所述待调度的慢任务调度到所述目标计算节点。否则,表明如果将待调度的慢任务加载到目标计算节点,将使得目标计算节点的计算能力严重下降,必然会产生慢任务,则不会将待调度的慢任务调度到目标计算节点。
通过在加载慢任务之前,对加载的目标计算节点的计算能力进行预估,可以提前预知该目标计算节点在加载慢任务之后的能力下降情况,可以得到加载后是否仍然会产生慢任务,并及时制止会产生慢任务的调度,防止出现慢任务多次调度的现象,从而有效抑制了抖动现象的发生,提高了MapReduce***的性能;并且,由于及时制止了不合理的慢任务调度,也降低了慢任务调度所导致的资源占用量;此外,该方法通过将慢节点队列作为调度基础,根据节点加载慢任务后的预估计算能力进行重新排队,也可以控制慢任务再调度的比例。
下面通过一组实验数据,说明本实施例的MapReduce***的慢任务调度方法的效果:
其中,本实施例进行了仿真实验,比较Hadoop、LATE、以及本实施例的慢任务调度方案的效果区别。仿真环境设置为:MapReduce***有一个主控节点和50个计算节点;按照Hadoop模型,每个计算节点能同时处理10个计算能力;计算节点的计算能力按照下表1的分布选取。该仿***要考察两个技术指标:MapReduce***完成工作的响应时间、以及MapReduce***发生抖动的次数(即统计经过两次以上调度的计算任务的个数)。
表1计算节点的计算能力分布
  物理机类型   台数
  1   VMs/host   202
  2   VMs/host   264
  3   VMs/host   201
  4   VMs/host   140
  5   VMs/host   45
  6   VMs/host   12
  7   VMs/host   7
以下的表2和表3为本次仿真实验中上述三种模型的响应时间对比表格和平均抖动次数表格,其中,Berkeley表示LATE方案,Patent表示本实施例方案;
表2响应时间(单位:tick)对比表格
  任务数   Hadoop   Berkeley   Patent
  1000   21749.4   19990.2   16814.6
  2000   38381.2   38223.6   33608.8
  3000   57929.4   55130.6   51802.3
  4000   81571.7   73063.4   69270.5
  5000   99111.3   94638.1   86405.8
表3平均抖动次数表格
  任务数   Hadoop   Berkeley   Patent
  1000   71.8   45.7   14.1
  2000   77.9   47.5   24
  3000   79.8   50.4   42.6
  4000   90.3   57.7   45.1
  5000   94.5   62.2   49.3
从表2和表3可以了解到,本实施例的方案在完成时间和抖动方面都要优于Hadoop和LATE。
本实施例的MapReduce***的慢任务调度方法,通过在将慢任务调度至目标计算节点之前,预估该目标计算节点加载待调度的慢任务之后的计算能力值,并在该预估的计算能力值大于评价基准节点的计算能力值时,才将待调度的慢任务调度到所述目标计算节点,可以保证该目标计算节点在加载慢任务后不会使得计算能力下降太多,从而避免新的慢任务的产生,防止了慢任务的多次调度,有效抑制了慢任务调度时抖动现象的发生。
图2为本发明MapReduce***的慢任务调度装置实施例的结构示意图,该装置可以执行本发明任意实施例的慢任务调度方法,本实施例只对该装置的结构做简单说明,具体的工作原理可以结合参见方法实施例所述。
如图2所示,本实施例的慢任务调度装置可以包括:参数获取单元21、能力预估单元22、队列排列单元23、调度处理单元24;其中,
参数获取单元21,用于分别获取MapReduce***中的各计算节点的计算能力值,所述计算节点的计算能力值
Figure BDA0000132068450000101
所述v1......vm表示所述计算节点上的各计算任务的处理速度,所述
Figure BDA0000132068450000102
表示所述各计算任务分别所属的工作的平均处理速度,所述m表示所述计算节点上的计算任务的总数量;
能力预估单元22,用于选取所述队列排列单元产生的慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点,所述M为自然数;并分别获取M个所述目标计算节点在加载待调度的慢任务之后预估的计算能力值,所述预估的计算能力
Figure BDA0000132068450000103
所述vi表示目标计算节点上的待调度慢任务的处理速度,所述
Figure BDA0000132068450000104
表示目标计算节点上的待调度慢任务所属的工作的平均处理速度;
队列排列单元23,用于根据所述计算能力值从大到小的顺序将所述各计算节点排列为慢节点队列;以及,根据所述目标计算节点的预估的计算能力值以及所述目标计算节点之外的各计算节点的计算能力值,将所述目标计算节点与所述目标计算节点之外的各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列;
调度处理单元24,用于预设所述慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;并在所述目标计算节点预估的计算能力值大于所述评价基准节点的计算能力值时,将所述待调度的慢任务调度到所述目标计算节点。
可选的,参数获取单元21可以包括:速度接收子单元211、平均处理子单元212、能力获取子单元213;其中,
速度接收子单元211,用于接收所述MapReduce***中的各计算节点上报的计算任务的处理速度,所述计算任务为在计算节点上处理的计算任务;
平均处理子单元212,用于根据所述处理速度得到所述计算任务所属的工作的平均处理速度,所述平均处理速度
Figure BDA0000132068450000111
所述v表示所述工作所拆分成的各所述计算任务的所述处理速度,所述n表示所述工作所拆分成的各计算任务所在的计算节点的总个数;
能力获取子单元213,用于将所述工作的平均处理速度分别发送至所述各计算节点,并接收所述各计算节点上报的根据所述工作的平均处理速度得到的所述各计算节点的计算能力值;或者,用于根据所述工作的平均处理速度得到所述各计算节点的计算能力值。
可选的,速度接收子单元211,具体用于在计算任务的类型为Map类型时,接收所述各计算节点计算得到的对应所述Map类型的计算任务的处理速度,所述处理速度v=p/t,所述p为所述计算节点当前处理完成的计算任务的数据量,所述t为所述数据量的计算任务的处理耗时。
可选的,本实施例的装置还可以包括:调度触发单元25,用于在获取MapReduce***中的目标计算节点在加载待调度的慢任务之后预估的计算能力值之前,接收所述MapReduce***中的计算节点发送的申请计算任务消息。
本实施例的MapReduce***的慢任务调度装置,通过在将慢任务调度至目标计算节点之前,预估该目标计算节点加载待调度的慢任务之后的计算能力值,并在该预估的计算能力值大于评价基准节点的计算能力值时,才将待调度的慢任务调度到所述目标计算节点,可以保证该目标计算节点在加载慢任务后不会使得计算能力下降太多,从而避免新的慢任务的产生,防止了慢任务的多次调度,有效抑制了慢任务调度时抖动现象的发生。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种MapReduce***的慢任务调度方法,其特征在于,包括:
分别获取MapReduce***中的各计算节点的计算能力值,所述计算节点的计算能力值
Figure FDA0000132068440000011
所述v1......vm表示所述计算节点上的各计算任务的处理速度,所述
Figure FDA0000132068440000012
表示所述各计算任务分别所属的工作的平均处理速度,所述m表示所述计算节点上的计算任务的总数量;
根据所述计算能力值从大到小的顺序将所述各计算节点排列为慢节点队列,并选取所述慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点,所述M为自然数;
分别获取M个所述目标计算节点在加载待调度的慢任务之后预估的计算能力值,所述预估的计算能力
Figure FDA0000132068440000013
所述vi表示目标计算节点上的待调度慢任务的处理速度,所述表示目标计算节点上的待调度慢任务所属的工作的平均处理速度;
根据所述目标计算节点的预估的计算能力值以及所述目标计算节点之外的各计算节点的计算能力值,将所述目标计算节点与所述目标计算节点之外的各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列,并预设所述慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;
在所述目标计算节点预估的计算能力值大于所述评价基准节点的计算能力值时,将所述待调度的慢任务调度到所述目标计算节点。
2.根据权利要求1所述的MapReduce***的慢任务调度方法,其特征在于,所述获取MapReduce***中的各计算节点的计算能力值,包括:
接收所述MapReduce***中的各所述计算节点上报的计算任务的处理速度,所述计算任务为在所述计算节点上处理的计算任务;
根据所述处理速度得到所述计算任务所属的工作的平均处理速度,所述平均处理速度
Figure FDA0000132068440000015
所述v表示所述工作拆分成的各计算任务的所述处理速度,所述n表示所述工作所拆分成的各计算任务所在的计算节点的总个数;
将所述工作的平均处理速度分别发送至所述各计算节点,并接收所述各计算节点上报的根据所述工作的平均处理速度得到的所述各计算节点的计算能力值。
3.根据权利要求1所述的MapReduce***的慢任务调度方法,其特征在于,所述获取MapReduce***中的各计算节点的计算能力值,包括:
接收所述MapReduce***中的各所述计算节点上报的计算任务的处理速度,所述计算任务为在所述计算节点上处理的计算任务;
根据所述处理速度得到所述计算任务所属的工作的平均处理速度,所述平均处理速度所述v表示所述工作所拆分成的各所述计算任务的所述处理速度,所述n表示所述工作所拆分成的各计算任务所在的计算节点的总个数;
根据所述工作的平均处理速度得到所述各计算节点的计算能力值。
4.根据权利要求1-3任一所述的MapReduce***的慢任务调度方法,其特征在于,在所述获取目标计算节点在加载待调度的慢任务之后预估的计算能力值之前,还包括:
接收所述MapReduce***中的计算节点发送的申请计算任务消息。
5.根据权利要求1-4任一所述的MapReduce***的慢任务调度方法,其特征在于,所述N与所述MapReduce***中的计算节点的总数的比值为10%。
6.一种MapReduce***的慢任务调度装置,其特征在于,包括:参数获取单元、能力预估单元、队列排列单元和调度处理单元;
所述参数获取单元,用于分别获取MapReduce***中的各计算节点的计算能力值,所述计算节点的计算能力值
Figure FDA0000132068440000022
所述v1......vm表示所述计算节点上的各计算任务的处理速度,所述
Figure FDA0000132068440000023
表示所述各计算任务分别所属的工作的平均处理速度,所述m表示所述计算节点上的计算任务的总数量;
所述能力预估单元,用于选取所述队列排列单元产生的慢节点队列中的前M个计算节点,每个选取的所述计算节点作为目标计算节点,所述M为自然数;并分别获取M个所述目标计算节点在加载待调度的慢任务之后预估的计算能力值,所述预估的计算能力
Figure FDA0000132068440000024
所述vi表示目标计算节点上的待调度慢任务的处理速度,所述
Figure FDA0000132068440000025
表示目标计算节点上的待调度慢任务所属的工作的平均处理速度;
所述队列排列单元,用于根据所述计算能力值从大到小的顺序将所述各计算节点排列为慢节点队列;以及,根据所述目标计算节点的预估的计算能力值以及所述目标计算节点之外的各计算节点的计算能力值,将所述目标计算节点与所述目标计算节点之外的各计算节点按照计算能力值从大到小的顺序排列成新的慢节点队列;
所述调度处理单元,用于预设所述慢节点队列中从队尾开始向前的第N个计算节点为评价基准节点,所述N为自然数;并在所述目标计算节点预估的计算能力值大于所述评价基准节点的计算能力值时,将所述待调度的慢任务调度到所述目标计算节点。
7.根据权利要求6所述的MapReduce***的慢任务调度装置,其特征在于,所述参数获取单元包括:
速度接收子单元,用于接收所述MapReduce***中的各所述计算节点上报的计算任务的处理速度,所述计算任务为在计算节点上处理的计算任务;
平均处理子单元,用于根据所述处理速度得到所述计算任务所属的工作的平均处理速度,所述平均处理速度
Figure FDA0000132068440000031
所述v表示所述工作所拆分成的各所述计算任务的所述处理速度,所述n表示所述工作所拆分成的各计算任务所在的计算节点的总个数;
能力获取子单元,用于将所述工作的平均处理速度分别发送至所述各计算节点,并接收所述各计算节点上报的根据所述工作的平均处理速度得到的所述各计算节点的计算能力值;或者,用于根据所述工作的平均处理速度得到所述各计算节点的计算能力值。
8.根据权利要求6或7所述的MapReduce***的慢任务调度装置,其特征在于,还包括:
调度触发单元,用于在所述获取MapReduce***中的目标计算节点在加载待调度的慢任务之后预估的计算能力值之前,接收所述MapReduce***中的计算节点发送的申请计算任务消息。
CN201210016143.2A 2012-01-18 2012-01-18 MapReduce***的慢任务调度方法和装置 Active CN102609303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210016143.2A CN102609303B (zh) 2012-01-18 2012-01-18 MapReduce***的慢任务调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210016143.2A CN102609303B (zh) 2012-01-18 2012-01-18 MapReduce***的慢任务调度方法和装置

Publications (2)

Publication Number Publication Date
CN102609303A true CN102609303A (zh) 2012-07-25
CN102609303B CN102609303B (zh) 2014-12-17

Family

ID=46526697

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210016143.2A Active CN102609303B (zh) 2012-01-18 2012-01-18 MapReduce***的慢任务调度方法和装置

Country Status (1)

Country Link
CN (1) CN102609303B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309738A (zh) * 2013-05-31 2013-09-18 中国联合网络通信集团有限公司 用户作业调度方法及装置
CN103699433A (zh) * 2013-12-18 2014-04-02 中国科学院计算技术研究所 一种于Hadoop平台中动态调整任务数目的方法及***
CN103761146A (zh) * 2014-01-06 2014-04-30 浪潮电子信息产业股份有限公司 一种MapReduce动态设定slots数量的方法
CN104102794A (zh) * 2014-08-06 2014-10-15 浪潮电子信息产业股份有限公司 一种hadoop调度法的优化方法
CN104243531A (zh) * 2013-06-21 2014-12-24 华为技术有限公司 一种数据处理的方法、装置及***
CN104765648A (zh) * 2015-04-30 2015-07-08 北京奇艺世纪科技有限公司 一种基于实时计算***的问题节点检测方法及装置
CN105808346A (zh) * 2014-12-30 2016-07-27 华为技术有限公司 一种任务调度方法与装置
CN106357813A (zh) * 2016-11-02 2017-01-25 龙存科技(北京)股份有限公司 一种应用于共享文件***的任务再调度方法
WO2017041674A1 (zh) * 2015-09-10 2017-03-16 阿里巴巴集团控股有限公司 一种启动备份任务的方法、装置及电子设备
CN111835854A (zh) * 2020-07-17 2020-10-27 北京航空航天大学 一种基于灰色预测算法的慢任务预测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005689A (zh) * 2006-06-23 2007-07-25 华为技术有限公司 用户终端的调度优先级的设置方法及基站节点
CN101883113A (zh) * 2010-06-25 2010-11-10 中兴通讯股份有限公司 一种实现重叠网络负载均衡的方法和物理节点
CN102004670A (zh) * 2009-12-17 2011-04-06 华中科技大学 一种基于MapReduce的自适应作业调度方法
US20110093852A1 (en) * 2009-10-21 2011-04-21 Sap Ag Calibration of resource allocation during parallel processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005689A (zh) * 2006-06-23 2007-07-25 华为技术有限公司 用户终端的调度优先级的设置方法及基站节点
US20110093852A1 (en) * 2009-10-21 2011-04-21 Sap Ag Calibration of resource allocation during parallel processing
CN102004670A (zh) * 2009-12-17 2011-04-06 华中科技大学 一种基于MapReduce的自适应作业调度方法
CN101883113A (zh) * 2010-06-25 2010-11-10 中兴通讯股份有限公司 一种实现重叠网络负载均衡的方法和物理节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈全: "异构环境下Map-Reduce调度算法的研究", 《中国优秀硕士学位论文全文数据库信息科技辑I138-6》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309738B (zh) * 2013-05-31 2016-12-28 中国联合网络通信集团有限公司 用户作业调度方法及装置
CN103309738A (zh) * 2013-05-31 2013-09-18 中国联合网络通信集团有限公司 用户作业调度方法及装置
CN104243531A (zh) * 2013-06-21 2014-12-24 华为技术有限公司 一种数据处理的方法、装置及***
CN103699433A (zh) * 2013-12-18 2014-04-02 中国科学院计算技术研究所 一种于Hadoop平台中动态调整任务数目的方法及***
CN103761146A (zh) * 2014-01-06 2014-04-30 浪潮电子信息产业股份有限公司 一种MapReduce动态设定slots数量的方法
CN103761146B (zh) * 2014-01-06 2017-10-31 浪潮电子信息产业股份有限公司 一种MapReduce动态设定slots数量的方法
CN104102794A (zh) * 2014-08-06 2014-10-15 浪潮电子信息产业股份有限公司 一种hadoop调度法的优化方法
CN105808346A (zh) * 2014-12-30 2016-07-27 华为技术有限公司 一种任务调度方法与装置
CN104765648A (zh) * 2015-04-30 2015-07-08 北京奇艺世纪科技有限公司 一种基于实时计算***的问题节点检测方法及装置
CN104765648B (zh) * 2015-04-30 2017-12-08 北京奇艺世纪科技有限公司 一种基于实时计算***的问题节点检测方法及装置
WO2017041674A1 (zh) * 2015-09-10 2017-03-16 阿里巴巴集团控股有限公司 一种启动备份任务的方法、装置及电子设备
CN106357813A (zh) * 2016-11-02 2017-01-25 龙存科技(北京)股份有限公司 一种应用于共享文件***的任务再调度方法
CN106357813B (zh) * 2016-11-02 2019-08-06 龙存科技(北京)股份有限公司 一种应用于共享文件***的任务再调度方法
CN111835854A (zh) * 2020-07-17 2020-10-27 北京航空航天大学 一种基于灰色预测算法的慢任务预测方法

Also Published As

Publication number Publication date
CN102609303B (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
CN102609303B (zh) MapReduce***的慢任务调度方法和装置
JP6898496B2 (ja) 計算グラフの処理
AlEbrahim et al. Task scheduling for heterogeneous computing systems
Taheri et al. A bee colony based optimization approach for simultaneous job scheduling and data replication in grid environments
Liu et al. Priority-based consolidation of parallel workloads in the cloud
WO2012154177A1 (en) Varying a characteristic of a job profile relating to map and reduce tasks according to a data size
CN109032769B (zh) 一种基于容器的持续集成ci任务处理方法及装置
US9298500B2 (en) Information processing system and control method of information processing system for managing jobs in a distributed multi-node environment
JP2020004370A (ja) ノンプリエンプティブタスクの集合をマルチロボット環境でスケジュールするためのシステムおよび方法
Wang et al. Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform
Wang et al. Task scheduling for MapReduce in heterogeneous networks
US20220300323A1 (en) Job Scheduling Method and Job Scheduling Apparatus
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Shah et al. Dynamic multilevel hybrid scheduling algorithms for grid computing
Fotohi et al. A cluster based job scheduling algorithm for grid computing
CN103970612A (zh) 一种基于虚拟机预分割的负载均衡方法和装置
Djebbar et al. Optimization of tasks scheduling by an efficacy data placement and replication in cloud computing
CN108108242B (zh) 基于大数据的存储层智能分发控制方法
CN116501828B (zh) 基于非结构化数据集的服务器无感知向量查询方法和***
CN108958919A (zh) 一种云计算中有期限约束的多dag任务调度费用公平性评估模型
EP3200083B1 (en) Resource scheduling method and related apparatus
Hu et al. Requirement-aware strategies with arbitrary processor release times for scheduling multiple divisible loads
CN110073321A (zh) 一种存储控制器及io请求处理方法
Geetha et al. Hadoop scheduler with deadline constraint
CN114816691A (zh) 流计算任务并行度优化方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
C06 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