CN103699433A - 一种于Hadoop平台中动态调整任务数目的方法及系统 - Google Patents

一种于Hadoop平台中动态调整任务数目的方法及系统 Download PDF

Info

Publication number
CN103699433A
CN103699433A CN201310700010.1A CN201310700010A CN103699433A CN 103699433 A CN103699433 A CN 103699433A CN 201310700010 A CN201310700010 A CN 201310700010A CN 103699433 A CN103699433 A CN 103699433A
Authority
CN
China
Prior art keywords
task
node
moving
tasks
speed
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
CN201310700010.1A
Other languages
English (en)
Other versions
CN103699433B (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 Zhongke Flux Technology Co ltd
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201310700010.1A priority Critical patent/CN103699433B/zh
Publication of CN103699433A publication Critical patent/CN103699433A/zh
Application granted granted Critical
Publication of CN103699433B publication Critical patent/CN103699433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种于Hadoop平台中动态调整任务数目的方法及系统,包括:步骤10,持续获取节点中运行的任务的执行速率;步骤20,计算执行速率在下降的任务的个数;步骤30,根据该个数判断是否需要调整节点中所运行的任务的数目。本发明自动的调整节点上运行的任务数目,以使Hadoop平台体现出较高的任务执行效率。使用感知节点的计算能力、任务执行状态实现动态调整Slots数目,有效的感知了集群和作业的异构性。实现集群运行任何异构性的作业或者作业运行在任何异构性的集群中都能使Hadoop平台体现出良好的性能。

Description

一种于Hadoop平台中动态调整任务数目的方法及系统
技术领域
本发明涉及Hadoop分布式计算平台,特别是涉及于MapReduce计算框架下进行任务调度的方法及系统。
背景技术
在云计算模式下,Hadoop平台为数据中心的用户提供了大量的服务,与此同时,由于数据中心机器的多样性、用户提交作业的复杂性、处理的数据与日俱增,Hadoop平台本身面临着巨大的挑战,并且这些挑战对Hadoop的性能有较大的影响。因此,如何使得Hadoop平台更适应集群的多样性、作业的复杂性,增强其健壮性,保持其原有的可扩展性、低成本、高效率、容错性等特性成为了改善Hadoop性能的关键。
针对Hadoop性能的优化,目前可分为四类:
1.以提高集群中资源利用率为目的的优化,如FairnessScheduler[1][2][3][11]、Capacity Scheduler[4]、A Dynamic Map ReduceScheduler[8],这些优化方法的共同点都是将用户提交的作业组织成不同的队列,然后为每一个队列分配不同大小的资源,以达到资源公平的、充分的使用。
2.以增加任务本地化的比例来缩短作业执行时间为目的的优化,如DelayScheduler[5]、Locality-Aware Scheduler[12],这些优化方法的共同点是通过数据分布的信息,增加任务本地化执行的数量,减少由于任务拷贝数据所花费的IO时间来缩短任务执行的时间。
3.以提高系统吐吞量为目的的优化,如Context Aware Scheduler[10],优化方案的特点是将任务和节点同时按照CPU密集型和IO密集型进行划分,然后将任务依据对不同类型的节点的需求进行分配,改善系统的吞吐量。
4.通过优化推测任务执行来缩短作业的执行时间,如LATEScheduler[6][7]、A Load-Aware Scheduler[9],这些优化方法的共同点是通过实时获取作业执行进度的信息及数据所存放的位置,提高推测任务执行的准确率、本地化率,达到缩短作业执行时间的目的。
但是依旧没有解决的问题是:
Hadoop平台无法感知集群节点的异构性状况,无法根据节点自身的处理能力合理有效的初始化集群配置,同时也无法根据任务的执行状况、集群中异构节点的处理能力和资源使用情况自动的调整节点上运行的任务数目和资源使用情况,即无论任务的当前任务的执行速率如何以及系统的各个资源消耗状态如何,Hadoop都无法自动的调整节点上资源的使用状态以使任务的执行达到高效的状态且系统资源得到充分的利用。因为目前Hadoop调度算法中没有考虑平台运行在异构环境下的诸多不同的因素及变化因素,也没有在平台运行中提供修改任务Slots的方法和策略。由于上述的问题使得Hadoop平台在集群和作业都是异构的情形下,其性能受到了严重的影响并且遇到了瓶颈。
发明内容
本发明解决的问题在于,自动的调整节点上运行的任务数目,以使Hadoop平台体现出较高的任务执行效率。
更进一步的,实现集群运行任何异构性的作业或者作业运行在任何异构性的集群中都能使Hadoop平台体现出良好的性能。
更进一步的,通过感知机制对节点中的资源、任务进行动态的调整,提高集群中的资源使用率以缩短作业的响应时间,使得集群中的资源和任务执行速率达到最佳匹配的状态。
更进一步的,使用感知节点的计算能力、任务执行状态实现动态调整Slots数目,有效的感知了集群和作业的异构性。
本发明公开了一种于Hadoop平台中动态调整任务数目的方法,包括:
步骤10,持续获取节点中运行的任务的执行速率;
步骤20,计算执行速率在下降的任务的个数;
步骤30,根据该个数判断是否需要调整节点中所运行的任务的数目。
步骤10之前还包括:
步骤1,获取集群中每个节点的处理能力;
步骤2,获取每个节点的处理资源的使用率。
所述的方法还包括:
该获取集群中每个节点的处理能力的步骤进一步包括:读取每个节点上的CPU核数;和/或
该获取每个节点的处理资源的使用率的步骤进一步包括:每隔固定时间间隔读取每个节点的CPU使用率以及内存使用率。
该步骤10进一步包括:
在节点的每个任务的执行过程中,以固定时间间隔持续获取该任务的当前执行进度,据以计算各时间点的执行速率。
TER=(TaskProgress_New-TaskProgress_Old)/IntervalTime
其中,TaskProgress_New为当前任务执行进度,TaskProgress_Old为前次任务执行进度,TER为执行速率,IntervalTime为固定时间间隔。
该步骤20进一步包括:
针对每个任务依次判断:该任务的本次执行速率是否小于该任务的前次执行速率;
如果是,该任务视为执行速率在下降,该个数增加1。
该步骤30进一步包括:
判断TER_Changed_Num≥Curr_Slots_Num×ThresHold是否为真,如果是,减少该节点中运行的任务的数目,如果否,增加该节点中运行的任务的数目;
其中,TER_Changed_Num为执行速率在下降的任务的个数,Curr_Slots_Num为节点中当前运行的任务数,ThresHold为一阈值。
该减少该节点中运行的任务的数目的步骤进一步包括:
判断节点中的当前任务数目,如果大于1且已有任务执行结束,减少节点中运行的空闲任务的数目;其余情况返回。
该增加该节点中运行的任务的数目的步骤进一步包括:
判断节点中的当前任务数目是否等于节点所配置的最大任务数目,如果是,进一步判断节点的剩余处理资源是否大于新增任务所需的最低处理资源阈值,如果是,在节点中增加运行至少一空闲任务;其余情况返回。
本发明还公开了一种Hadoop平台中动态调整任务数目的系统,包括:
执行速率获取装置,持续获取节点中运行的任务的执行速率;
个数计算装置,计算执行速率在下降的任务的个数;
调整判断装置,根据该个数判断是否需要调整节点中所运行的任务的数目。
所述的系统还包括:
处理能力获取装置,获取集群中每个节点的处理能力;
处理资源获取装置,获取每个节点的处理资源的使用率。
所述的系统还包括:
该处理能力获取装置进一步包括:读取每个节点上的CPU核数的单元;和/或
该处理资源获取装置进一步包括:每隔固定时间间隔读取每个节点的CPU使用率以及内存使用率的单元。
该执行速率获取装置进一步包括:
在节点的每个任务的执行过程中,以固定时间间隔持续获取该任务的当前执行进度,据以计算各时间点的执行速率的单元。
TER=(TaskProgress_New-TaskProgress_Old)/IntervalTime
其中,TaskProgress_New为当前任务执行进度,TaskProgress_Old为前次任务执行进度,TER为执行速率,IntervalTime为固定时间间隔。
该个数计算装置进一步包括:
针对每个任务依次判断:该任务的本次执行速率是否小于该任务的前次执行速率,如果是,该任务视为执行速率在下降,该个数增加1的单元。
该调整判断装置进一步包括:
判断TER_Changed_Num≥Curr_Slots_Num×ThresHold是否为真的单元,如果是,调用减少该节点中运行的任务的数目的单元,如果否,调用增加该节点中运行的任务的数目的单元;其中,TER_Changed_Num为执行速率在下降的任务的个数,Curr_Slots_Num为节点中当前运行的任务数,ThresHold为一阈值。
该减少该节点中运行的任务的数目的单元进一步包括:
判断节点中的当前任务数目,如果大于1且已有任务执行结束,减少节点中运行的空闲任务的数目,执行减少节点中运行的空闲任务的数目的模块。
该增加该节点中运行的任务的数目的单元进一步包括:
判断节点中的当前任务数目是否等于节点所配置的最大任务数目,如果是,进一步判断节点的剩余处理资源是否大于新增任务所需的最低处理资源阈值,如果是,在节点中增加运行至少一空闲任务的单元。
本发明通过心跳机制传递信息,解决了原有的集群与作业任务之间的隔离问题。同时,自动的调整节点上运行的任务数目,以使Hadoop平台体现出较高的任务执行效率。使用感知节点的计算能力、任务执行状态实现动态调整Slots数目,有效的感知了集群和作业的异构性。实现集群运行任何异构性的作业或者作业运行在任何异构性的集群中都能使Hadoop平台体现出良好的性能。通过感知机制对节点中的资源、任务进行动态的调整,提高集群中的资源使用率以缩短作业的响应时间,使得集群中的资源和任务执行速率达到最佳匹配的状态。
附图说明
图1所示为本发明的一种于Hadoop平台中动态调整任务数目的方法的流程图;
图2所示为本发明的一种于Hadoop平台中动态调整任务数目的方法的详细流程图;
图3A、3B所示为本发明的一种Hadoop平台中动态调整任务数目的系统的示意图。
图4所示为Hadoop平台的结构示意图。
具体实施方式
Hadoop平台包括主平台100以及多个节点200。主平台100中包括JobTracker节点。每个节点200中包括TaskTracker节点以及DataNode节点。每个节点200的DataNode节点均与一NameNode节点300连接。
Hadoop平台中包括多个节点,每个节点均设置有处理器,从而拥有处理能力。同时,每个节点均可接受用户发送的作业,据以运行不同的任务。每个节点具有标志slot,slot用来标识任务是否可以执行且可以同时执行几个。本发明可基于节点中各个任务的运行情况,动态调整所执行的任务的数目,以提高Hadoop平台的任务执行效率。
如图1所示为本发明的一种于Hadoop平台中动态调整任务数目的方法的流程图。
步骤10,通过心跳机制持续获取节点中运行的任务的执行速率;
步骤20,计算执行速率在下降的任务的个数;
步骤30,根据该个数判断是否需要调整节点中所运行的任务的数目。
本发明通过持续监控节点中运行的任务的执行速率的变化,而实时调整节点中的任务数目,从而实现集群运行任何异构性的作业或者作业运行在任何异构性的集群中都能使Hadoop平台体现出良好的性能和较高的任务执行效率。
以下具体描述本发明的实现过程。如图2所示为本发明的一种于Hadoop平台中动态调整任务数目的方法的详细流程图。
在步骤10之前,执行步骤1:获取集群中每个节点的计算能力。
获取集群中每个节点的计算能力的步骤通过读取每个节点上的CPU核数的方式来实现。CPU可以是一核、双核或多核,节点上的CPU核数的多寡用于表述该节点的计算能力的高低。通过步骤1可使得Hadoop平台能够感知异构集群中每个节点的处理能力。
具体而言,步骤1中,Hadoop集群中每个节点会读取Linux系统下/proc/cpuinfo文件,以读取该节点上CPU核数的信息,并把CPU核数作为判断节点计算能力高低的参数存储于TaskTrackerStatus对象中的成员变量coresNum中。
接下来,用户提交的作业经过初始化生成多个任务已运行在集群中的各个节点上,此时,执行步骤2,获取每个节点的处理资源的使用率。
该步骤2具体可通过每隔固定时间间隔读取每个节点的CPU使用率以及内存使用率的方式来实现。
具体而言,Hadoop平台管理节点要每隔一段时间获取节点处理资源的使用情况,以作为后续调整任务数目时的参考。节点通过辅助工具OSUtils读取Linux系统下/proc/stat文件计算出当前CPU的使用率,并通过读取Linux系统下/proc/meminfo文件计算内存的使用率,然后,将获取的CPU和内存的使用率存储到TaskTrackerStatus对象中的成员变量CPU_Utilization_Factor与MEM_Utilization_Factor中。为了保证获取的信息能够反映节点当前的状态和任务的执行情况,该固定时间间隔可以是Hadoop平台固有的心跳时间间隔,以借助心跳机制在平台与节点之间传递信息,克服原有的集群与任务之间的隔离问题。
步骤2以后继续执行步骤10:Hadoop平台在每个任务的执行过程中,以固定时间间隔持续获取该任务的当前执行进度,据以计算各采样时间点的执行速率。
也就是说,节点中可能执行着多个任务,对每个任务均进行执行进度的采样,即,每隔固定时间间隔,获取任务的当前任务执行进度。每两个采样时间点之间间隔该固定时间间隔,每个采样时间点均对应有本次采样得到的当前任务执行进度,则通过相邻的两次采样得到的执行进度,计算得到在后采样时间点的执行速率。该固定时间间隔可以是Hadoop平台固有的心跳时间间隔,即,利用心跳机制传递信息。
即,TER=(TaskProgress_New-TaskProgress_Old)/IntervalTime
其中,TaskProgress_New为当前任务执行进度,TaskProgress_Old为前次任务执行进度,TER为执行速率,IntervalTime为固定时间间隔。
具体而言,为节点上运行的多个任务构建一个AttemptMapTask集合并存储于TaskTracker对象中,集合采用Key-Value存储格式,执行MapTask的任务ID(TaskID)作为Key,MapTask的执行进度(TaskProgress)作为Value,为了节省空间集合中仅存放最近一次记录的信息;集合存放形式为{(TaskID1,TaskProgress_1),(TaskID2,TaskProgress_2),......(TaskIDn,TaskProgress_n)},n为节点上同时运行的任务数目。
Hadoop平台通过任务的执行状态(TaskStatus)获取任务的TaskID和任务本次执行进度(TaskProgress_New)。具体的,获取该节点上本次的状态为Running的TaskID和TaskProgress_New,判断在任务执行进度集合中是否有该TaskID的键值对;如果有,首先取出任务的前次任务执行进度(TaskProgress_Old),然后更新该任务在任务执行进度集合中的当前执行进度值;如果没有,则将前次任务执行进度(TaskProgress_Old)赋值为零,同时将本次的任务执行进度添加到集合中。根据TaskID到集合中取出的前次任务执行进度TaskProgress_Old,计算对应的任务执行速率。任务执行速率用于描述该节点上任务执行的快慢,该值等于取得的当前任务执行进度(TaskProgress_New)与前次该任务的执行进度(TaskProgress_Old)差比上时间间隔。该时间间隔为固定时间间隔。Hadoop平台通过对当前节点心跳信息的处理而获得任务的执行情况,特别是执行速率。
接下来执行步骤20,针对每个任务依次判断:该任务的当前执行速率是否小于该任务的前次执行速率;如果是,该任务视为执行速率在下降;统计执行速率下降的任务的个数。
本发明在每个采样时间点,均对所有任务的当前执行速率进行判断,则对比每个任务的当前执行速率与前次执行速率,即可获知该任务的执行速率是否在下降。
具体而言,该步骤通过如下方式实现:构建一个TaskTER集合用于存储节点上运行的多个任务,并将集合存储于TaskTracker对象中,存储格式与AttemptMapTask集合一样,执行MapTaskID作为Key,任务的执行速率TER作为Value,为了节省空间集合中仅存放最近一次记录的信息;集合存放形式为{(TaskID1,TER-1),(TaskID2,TER-2),.......(TaskIDn,TER-n)},n为节点上同时运行的Task数目。根据步骤10的结果,获取任务当前的执行速率TER_New及其所对应的TaskID。判断在任务执行速率集合中是否有该TaskID的键值对,如果有,首先取出任务的前次执行速率(TER_Old),然后更新该任务在任务执行速率集合中的当前执行速率值;如果没有,则将前次任务执行速率(TER_Old)赋值为-1,同时将当前的执行速率添加到集合中。比较TER_New的值与TER_Old的值的大小;如果TER_New小于TER_Old,则TER_Changed_Num加1,反之TER_Changed_Num值不变。将TER_Changed_Num的值存放在TaskTracker对象中的成员变量中。
接下来执行步骤30,根据执行速率在下降的任务的个数判断是否需要调整节点中所运行的任务的数目。
节点中存储有一专门用于判断调整与否的阈值,具体的判断标准为:
判断TER_Changed_Num≥Curr_Slots_Num×ThresHold是否为真,如果是,表明当前节点运行的任务较多,则减少该节点中运行的任务的数目,执行步骤41,该减少的数目可为一预定步数,例如1个或多个;如果否,表明当前节点还有剩余处理资源,则增加该节点中运行的任务的数目,执行步骤42,该增加的数目可为一预定步数,例如1个或多个;其中,TER_Changed_Num为执行速率在下降的任务的个数,Curr_Slots_Num为节点中当前运行的任务数,ThresHold为该阈值。
步骤41,判断节点中的当前任务数目,如果大于1,减少节点中运行的空闲任务的数目;如果等于1且该任务已执行结束,减少节点中运行的空闲任务的数目;其余情况返回。
具体而言,获取节点上当前的任务数(Curr_Slots_Num)、任务的状态(Task_State)、当前空闲任务数(numFreeSlots)、最大任务数(maxMapSlots)、最大的Jvm数(maxJvms);其次,判断减少任务条件是否满足,即判断Curr_Slots_Num的数目,如果大于1且已经有任务执行结束,则减少numFreeSlots、maxMapSlots、maxJvms,其余情况,返回;
步骤42,判断节点中的当前任务数目是否等于节点所配置的最大任务数目,如果是,说明配置的任务数目不是最佳的,则进一步判断节点的剩余处理资源是否大于新增任务所需的最低处理资源阈值,如果是,在节点中增加运行至少一空闲任务;其余情况返回。特别是,根据步骤2的结果,判断剩余处理资源是否大于新增任务所需的最低处理资源阈值。
具体而言,获取节点上当前的任务数(Curr_Slots_Num)、任务的状态(Task_State)、当前空闲任务数(numFreeSlots)、最大任务数(maxMapSlots)、最大的Jvm数(maxJvms);其次,判断增加任务条件是否满足,即判断Curr_Slots_Num是否已经达到节点的任务最大值(maxMapSlots);如果Curr_Slots_Num等于maxMapSlots,且节点上剩余的处理资源能够满足新增任务的要求,就增加numFreeSlots、maxMapSlots、maxJvms;其余情况返回。
接下来,步骤41或42执行结束后,执行步骤50,将步骤41或42的执行结果,通过心跳机制发送给JobTracker,由JobTracker根据修改后的任务数目决定任务的分配。其实现方法为:
修改任务数目后,重新判断用于标识节点是否请求新任务的标志askForNewTask。随后,TaskTracker利用心跳向JobTracker发送请求任务的标志askForNewTask,JobTracker在接受该标志位后,会根据修改后的任务数目和该标志的值,决定任务分配。
本发明中,在每个采样时间点均执行上述步骤2、10、20、30、41、42、50,则Hadoop平台可随时动态调整节点中的任务数目。
本发明通过感知节点的计算能力,并根据资源使用情况和任务执行情况动态调整Slots数目,达到任务的执行效率与节点资源的较佳匹配状态。对于构造适合异构性集群和作业的云平台有重要的实际意义,具有良好的市场前景和应用价值。
另外,对应图1、2所述的方法,本发明还公开了一种Hadoop平台中动态调整任务数目的系统,如图3A、3B所示,包括:
执行速率获取装置310,持续获取节点中运行的任务的执行速率;
个数计算装置320,计算执行速率在下降的任务的个数;
调整判断装置330,根据该个数判断是否需要调整节点中所运行的任务的数目。
所述系统还包括:处理能力获取装置301,获取集群中每个节点的处理能力;处理资源获取装置302,获取每个节点的处理资源的使用率。
该处理能力获取装置301进一步包括:读取每个节点上的CPU核数的单元。
该处理资源获取装置302进一步包括:每隔固定时间间隔读取每个节点的CPU使用率以及内存使用率的单元。
该执行速率获取装置310进一步包括:在节点的每个任务的执行过程中,以固定时间间隔持续获取该任务的当前执行进度,据以计算各时间点的执行速率的单元。
TER=(TaskProgress_New-TaskProgress_Old)/IntervalTime
其中,TaskProgress_New为当前任务执行进度,TaskProgress_Old为前次任务执行进度,TER为执行速率,IntervalTime为固定时间间隔。
该个数计算装置320进一步包括:针对每个任务依次判断:该任务的本次执行速率是否小于该任务的前次执行速率,如果是,该任务视为执行速率在下降,该个数增加1的单元。
该调整判断装置330进一步包括:
判断TER_Changed_Num≥Curr_Slots_Num×ThresHold是否为真的单元,如果是,调用减少该节点中运行的任务的数目的单元,如果否,调用增加该节点中运行的任务的数目的单元;其中,TER_Changed_Num为执行速率在下降的任务的个数,Curr_Slots_Num为节点中当前运行的任务数,ThresHold为一阈值。
该减少该节点中运行的任务的数目的单元进一步包括:判断节点中的当前任务数目,如果大于1且已有任务执行结束,减少节点中运行的空闲任务的数目,例如减1,执行减少节点中运行的空闲任务的数目的模块。特别的,为了加速算法的收敛,在较短的时间内找出运行任务数目的最优值,减少的任务数可以是根据历史任务信息来决定本次需要减少的任务个数。
该增加该节点中运行的任务的数目的单元进一步包括:判断节点中的当前任务数目是否等于节点所配置的最大任务数目,如果是说明配置的任务数据还不是最佳的,则进一步判断节点的剩余处理资源是否大于新增任务所需的最低处理资源阈值,如果是,在节点中增加运行至少一空闲任务的单元。
本发明通过心跳机制传递的信息,解决了原有的集群与作业任务之间的隔离问题。同时,自动的调整节点上运行的任务数目,以使Hadoop平台体现出较高的任务执行效率。使用感知节点的计算能力、任务执行状态实现动态调整Slots数目,有效的感知了集群和作业的异构性。实现集群运行任何异构性的作业或者作业运行在任何异构性的集群中都能使Hadoop平台体现出良好的性能。通过感知机制对节点中的资源、任务进行动态的调整,提高集群中的资源使用率以缩短作业的响应时间,使得集群中的资源和任务执行速率达到最佳匹配的状态。

Claims (18)

1.一种于Hadoop平台中动态调整任务数目的方法,其特征在于,包括:
步骤10,持续获取节点中运行的任务的执行速率;
步骤20,计算执行速率在下降的任务的个数;
步骤30,根据该个数判断是否需要调整节点中所运行的任务的数目。
2.如权利要求1所述的方法,其特征在于,步骤10之前还包括:
步骤1,获取集群中每个节点的处理能力;
步骤2,获取每个节点的处理资源的使用率。
3.如权利要求2所述的方法,其特征在于,还包括:
该获取集群中每个节点的处理能力的步骤进一步包括:读取每个节点上的CPU核数;和/或
该获取每个节点的处理资源的使用率的步骤进一步包括:每隔固定时间间隔读取每个节点的CPU使用率以及内存使用率。
4.如权利要求1所述的方法,其特征在于,该步骤10进一步包括:
在节点的每个任务的执行过程中,以固定时间间隔持续获取该任务的当前执行进度,据以计算各时间点的执行速率。
5.如权利要求4所述的方法,其特征在于:
TER=(TaskProgress_New-TaskProgress_Old)/IntervalTime
其中,TaskProgress_New为当前任务执行进度,TaskProgress_Old为前次任务执行进度,TER为执行速率,IntervalTime为固定时间间隔。
6.如权利要求4所述的方法,其特征在于,该步骤20进一步包括:
针对每个任务依次判断:该任务的本次执行速率是否小于该任务的前次执行速率;
如果是,该任务视为执行速率在下降,该个数增加1。
7.如权利要求1或2所述的方法,其特征在于,该步骤30进一步包括:
判断TER_Changed_Num≥Curr_Slots_Num×ThresHold是否为真,如果是,减少该节点中运行的任务的数目,如果否,增加该节点中运行的任务的数目;
其中,TER_Changed_Num为执行速率在下降的任务的个数,Curr_Slots_Num为节点中当前运行的任务数,ThresHold为一阈值。
8.如权利要求7所述的方法,其特征在于,该减少该节点中运行的任务的数目的步骤进一步包括:
判断节点中的当前任务数目,如果大于1且已有任务执行结束,减少节点中运行的空闲任务的数目,其余情况返回。
9.如权利要求7所述的方法,其特征在于,该增加该节点中运行的任务的数目的步骤进一步包括:
判断节点中的当前任务数目是否等于节点所配置的最大任务数目,如果是,进一步判断节点的剩余处理资源是否大于新增任务所需的最低处理资源阈值,如果是,在节点中增加运行至少一空闲任务;其余情况返回。
10.一种Hadoop平台中动态调整任务数目的系统,其特征在于,包括:
执行速率获取装置,持续获取节点中运行的任务的执行速率;
个数计算装置,计算执行速率在下降的任务的个数;
调整判断装置,根据该个数判断是否需要调整节点中所运行的任务的数目。
11.如权利要求10所述的系统,其特征在于,还包括:
处理能力获取装置,获取集群中每个节点的处理能力;
处理资源获取装置,获取每个节点的处理资源的使用率。
12.如权利要求11所述的系统,其特征在于,还包括:
该处理能力获取装置进一步包括:读取每个节点上的CPU核数的单元;和/或
该处理资源获取装置进一步包括:每隔固定时间间隔读取每个节点的CPU使用率以及内存使用率的单元。
13.如权利要求10所述的系统,其特征在于,该执行速率获取装置进一步包括:
在节点的每个任务的执行过程中,以固定时间间隔持续获取该任务的当前执行进度,据以计算各时间点的执行速率的单元。
14.如权利要求13所述的系统,其特征在于:
TER=(TaskProgress_New-TaskProgress_Old)/IntervalTime
其中,TaskProgress_New为当前任务执行进度,TaskProgress_Old为前次任务执行进度,TER为执行速率,IntervalTime为固定时间间隔。
15.如权利要求13所述的系统,其特征在于,该个数计算装置进一步包括:
针对每个任务依次判断:该任务的本次执行速率是否小于该任务的前次执行速率,如果是,该任务视为执行速率在下降,该个数增加1的单元。
16.如权利要求10或11所述的系统,其特征在于,该调整判断装置进一步包括:
判断TER_Changed_Num≥Curr_Slots_Num×ThresHold是否为真的单元,如果是,调用减少该节点中运行的任务的数目的单元,如果否,调用增加该节点中运行的任务的数目的单元;其中,TER_Changed_Num为执行速率在下降的任务的个数,Curr_Slots_Num为节点中当前运行的任务数,ThresHold为一阈值。
17.如权利要求16所述的系统,其特征在于,该减少该节点中运行的任务的数目的单元进一步包括:
判断节点中的当前任务数目,如果大于1且已有任务执行结束,减少节点中运行的空闲任务的数目,执行减少节点中运行的空闲任务的数目的模块。
18.如权利要求16所述的系统,其特征在于,该增加该节点中运行的任务的数目的单元进一步包括:
判断节点中的当前任务数目是否等于节点所配置的最大任务数目,如果是,进一步判断节点的剩余处理资源是否大于新增任务所需的最低处理资源阈值,如果是,在节点中增加运行至少一空闲任务的单元。
CN201310700010.1A 2013-12-18 2013-12-18 一种于Hadoop平台中动态调整任务数目的方法及系统 Active CN103699433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310700010.1A CN103699433B (zh) 2013-12-18 2013-12-18 一种于Hadoop平台中动态调整任务数目的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310700010.1A CN103699433B (zh) 2013-12-18 2013-12-18 一种于Hadoop平台中动态调整任务数目的方法及系统

Publications (2)

Publication Number Publication Date
CN103699433A true CN103699433A (zh) 2014-04-02
CN103699433B CN103699433B (zh) 2017-07-14

Family

ID=50360972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310700010.1A Active CN103699433B (zh) 2013-12-18 2013-12-18 一种于Hadoop平台中动态调整任务数目的方法及系统

Country Status (1)

Country Link
CN (1) CN103699433B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102794A (zh) * 2014-08-06 2014-10-15 浪潮电子信息产业股份有限公司 一种hadoop调度法的优化方法
CN104317658A (zh) * 2014-10-17 2015-01-28 华中科技大学 一种基于MapReduce的负载自适应任务调度方法
CN105068920A (zh) * 2015-07-17 2015-11-18 浪潮电子信息产业股份有限公司 一种基于shell测试rack资产信息稳定性的方法
CN106155802A (zh) * 2015-03-30 2016-11-23 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
CN106339252A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 分布式dag系统的自适应优化方法和装置
WO2017107456A1 (zh) * 2015-12-25 2017-06-29 乐视控股(北京)有限公司 确定任务消耗资源的方法及装置
CN106933664A (zh) * 2017-03-09 2017-07-07 北京搜狐新媒体信息技术有限公司 一种Hadoop集群的资源调度方法及装置
CN109254835A (zh) * 2018-06-27 2019-01-22 阿里巴巴集团控股有限公司 批处理任务的处理方法、装置、服务器及可读存储介质
CN111090502A (zh) * 2018-10-24 2020-05-01 阿里巴巴集团控股有限公司 一种流数据任务调度方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138831A1 (en) * 2008-12-02 2010-06-03 Hitachi, Ltd. Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system
CN102609303A (zh) * 2012-01-18 2012-07-25 华为技术有限公司 MapReduce系统的慢任务调度方法和装置
CN102866918A (zh) * 2012-07-26 2013-01-09 中国科学院信息工程研究所 面向分布式编程框架的资源管理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138831A1 (en) * 2008-12-02 2010-06-03 Hitachi, Ltd. Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system
CN102609303A (zh) * 2012-01-18 2012-07-25 华为技术有限公司 MapReduce系统的慢任务调度方法和装置
CN102866918A (zh) * 2012-07-26 2013-01-09 中国科学院信息工程研究所 面向分布式编程框架的资源管理系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李丽英,唐卓,李仁发: "《基于LATE的Hadoop数据局部性改进调度算法》", 《计算机科学》 *
陈全,邓倩妮: "异构环境下自适应的Map-Reduce调度", 《计算机工程与科学》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102794A (zh) * 2014-08-06 2014-10-15 浪潮电子信息产业股份有限公司 一种hadoop调度法的优化方法
CN104317658A (zh) * 2014-10-17 2015-01-28 华中科技大学 一种基于MapReduce的负载自适应任务调度方法
CN104317658B (zh) * 2014-10-17 2018-06-12 华中科技大学 一种基于MapReduce的负载自适应任务调度方法
CN106155802B (zh) * 2015-03-30 2020-03-13 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
CN106155802A (zh) * 2015-03-30 2016-11-23 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
CN106339252A (zh) * 2015-07-08 2017-01-18 阿里巴巴集团控股有限公司 分布式dag系统的自适应优化方法和装置
CN106339252B (zh) * 2015-07-08 2020-06-23 阿里巴巴集团控股有限公司 分布式dag系统的自适应优化方法和装置
CN105068920A (zh) * 2015-07-17 2015-11-18 浪潮电子信息产业股份有限公司 一种基于shell测试rack资产信息稳定性的方法
CN105068920B (zh) * 2015-07-17 2018-01-02 浪潮电子信息产业股份有限公司 一种基于shell测试rack资产信息稳定性的方法
WO2017107456A1 (zh) * 2015-12-25 2017-06-29 乐视控股(北京)有限公司 确定任务消耗资源的方法及装置
CN106933664A (zh) * 2017-03-09 2017-07-07 北京搜狐新媒体信息技术有限公司 一种Hadoop集群的资源调度方法及装置
CN109254835A (zh) * 2018-06-27 2019-01-22 阿里巴巴集团控股有限公司 批处理任务的处理方法、装置、服务器及可读存储介质
CN111090502A (zh) * 2018-10-24 2020-05-01 阿里巴巴集团控股有限公司 一种流数据任务调度方法和装置

Also Published As

Publication number Publication date
CN103699433B (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
CN103699433A (zh) 一种于Hadoop平台中动态调整任务数目的方法及系统
CN106776005B (zh) 一种面向容器化应用的资源管理系统及方法
CN105528330B (zh) 负载均衡的方法、装置、丛集和众核处理器
CN103605567B (zh) 面向实时性需求变化的云计算任务调度方法
US10474504B2 (en) Distributed node intra-group task scheduling method and system
CN102724277B (zh) 虚拟机热迁移和部署的方法、服务器及集群系统
CN102111337B (zh) 任务调度方法和系统
WO2017167025A1 (zh) 一种实现任务调度的方法、装置及计算机存储介质
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
CN108228347A (zh) 一种任务感知的Docker自适应调度系统
CN109120715A (zh) 一种云环境下动态负载均衡方法
CN102904955B (zh) 云计算平台中Web应用的自适应伸缩控制系统及其方法
CN106844051A (zh) 一种边缘计算环境中功耗优化的负载任务迁移算法
CN104657221A (zh) 一种云计算中基于任务分类的多队列错峰调度模型及方法
CN105245617A (zh) 一种基于容器的服务器资源供给方法
CN109672709B (zh) 一种混合云业务调度系统及方法
CN107357652B (zh) 一种基于分段排序及标准差调整因子的云计算任务调度方法
CN104317658A (zh) 一种基于MapReduce的负载自适应任务调度方法
CN110086855B (zh) 基于蚁群算法的Spark任务智能感知调度方法
CN106775949B (zh) 感知复合应用特征与网络带宽的虚拟机在线迁移优化方法
Liu et al. A survey on virtual machine scheduling in cloud computing
CN106250240A (zh) 一种任务优化调度方法
CN109005223A (zh) 物联网资源调度方法及系统、计算机可读存储介质和终端
CN104881322A (zh) 一种基于装箱模型的集群资源调度方法及装置
CN102436399A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240320

Address after: Room 711C, Floor 7, Building A, Yard 19, Ronghua Middle Road, Daxing District, Beijing Economic-Technological Development Area, 100176

Patentee after: Beijing Zhongke Flux Technology Co.,Ltd.

Country or region after: China

Address before: 100190 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

Country or region before: China

TR01 Transfer of patent right