一种基于容量的多任务调度方法及系统的制作方法

文档序号:6364466阅读:140来源:国知局
专利名称:一种基于容量的多任务调度方法及系统的制作方法
技术领域
本发明属于数据处理技术领域,尤其涉及一种基于容量的多任务调度方法及系统。
背景技术
映射化简(MapReduce)是一种分布式的用于处理大规模数据集的并行编程模式或者通用框架。通过定义相应的映射(Map)和化简(Reduce)函数来实现分布式数据处理的功能。在现有基于MapReduce框架的任务调度系统中,包括调度节点(JobTracker)和若干个任务执行节点(TaskTracker),其网络架构如图1所示,其中,客户端用于将用户布置的并行处理作业提交至调度节点,调度节点将客户端提交的作业分解为多个具有相同处理功能(但输入数据可能不同)的Map任务和多个具有相同处理功能(但处理的数据可能不同)的Reduce任务,并将分解的任务缓存在内存中。当任务执行节点没有达到其任务执行能力时,即当前执行的任务数低于可执行任务数时,任务执行节点向调度节点请求任务,调度节点从分解出的任务中调度一个任务给任务执行节点。在现有技术中,当任务执行节点的硬件配置较低或者其上运行的任务占用的资源较多,如正在运行的任务占用了大量的系统资源(CPU负载过重和/或内存不足等)时,如果任务执行节点尚未达到其预先配置的最大任务配额,其仍然会向调度节点请求执行新任务,在这种情况下,不仅可能出现新任务由于内存不足不能正常执行的情况,而且还会影响到正在执行的任务,甚至会导致调度节点发生故障。另外,对于任务执行节点的硬件配置较高或者其上运行的任务占用资源较少,如果任务执行节点已经达到其预先配置的最大任务配额,其将不再向调度节点请求执行新任务,·从而造成任务执行节点资源的浪费。总之,在现有基于MapReduce框架的任务调度系统中,任务执行节点仅根据预先部署的配置信息请求任务,容易造成任务执行节点过载、负载及内存不足等问题,影响任务调度和执行的效率。

发明内容
本发明提供一种多任务调度方法,以解决现有基于MapReduce框架的任务调度系统容易造成任务执行节点过载、负载及内存不足的问题。本发明是这样实现的,一种多任务调度方法,所述方法包括:任务执行节点向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间;调度节点判断所述负载值是否小于一阈值,若是,根据所述任务执行节点的当前可用内存空间,为该任务执行节点进行任务调度。一种任务调度设备,所述设备包括:请求信息接收单元,用于接收任务执行节点发送的获取任务的请求,所述请求中携带有该任务执行节点当前的负载值以及可用内存空间;第一判断单元,用于判断所述负载值是否小于一阈值;第二判断单元,用于在所述第一判断单元判断结果为是时,判断是否存在内存需求量小于或者等于所述任务执行节点当前可用内存空间的待分配任务;分配单元,用于在所述第二判断单元判断结果为是时,将将内存需求量小于或等于所述任务执行节点当前可用内存空间的任务分配给该任务执行节点。一种任务执行设备,所述设备包括:请求信息发送单元,用于向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间;任务接收单元,用于接收调度节点分配的任务。一种多任务调度系统,其特征在于,所述系统包括所述任务调度设备以及至少一个所述任务执行设备。从上述技术方案可以看出,本发明根据任务执行节点上报的负载值以及可用内存空间进行任务调度,将任务分配给负载合适及内存充足的任务执行节点,从而可有效避免任务执行节点过载、负载及内存不足等问题,提高任务执行节点资源的利用率以及任务调度和执行的效率。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是现有基于MapReduce框架的任务调度系统的示意图;图2是本发明实施例一提供的多任务调度系统的组成结构图。图3是本发明实施例二提供的多任务调度方法的实现流程图;图4是本发明实施例三提供的任务调度设备的组成结构图;图5是本发明实施例四提供的任务执行设备的组成结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下对照附图并结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。实施例一:
图2示出了本发明实施例一提供的多任务调度系统的组成结构,为了便于说明,仅不出了与本发明实施例相关的部分。该多任务调度系统I包括任务调度设备11以及至少一个任务执行设备12。该多任务调度系统系统是基于MapReduce架构的。所述任务调度设备11通过有线或者无线方式与任务执行设备12连接通信,用于接收任务执行设备12发送的携带有当前负载值、可用内存空间等信息的任务请求,并根据携带的负载值、可用内存空间等信息对任务执行设备12进行任务调度。所述任务执行设备12用于向任务调度设备11发送携带有当前负载值、可用内存空间等信息的任务请求,并接收任务调度设备11分配的任务。实施例二:图3示出了本发明实施例二提供的多任务调度方法的实现流程,该方法过程详述如下:在步骤S301中,任务执行节点向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间。在本实施例中,任务执行节点在触发发送心跳消息时,通过心跳信息向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间
坐寸ο其中,所述任务执行节点当前的负载值指的是任务执行节点当前的处理性能,例如任务执行节点CPU的使用率等。所述任务执行节点当前的可用内存空间的计算公式为:可用内存空间=实际内存空间-已使用内存空间-任务执行节点系统预留内存空间-已分配任务预留内存空间。在步骤S302中,调度节点判断所述负载值是否小于一阈值,若判断结果为“是”,则执行步骤S304,若判断结果为“否”,则执行步骤S303。

该一阈值可为一预设阈值,也可以为动态阈值,包括但不限于系统平均负载值。举例说明(但不以该举例为限),当任务执行节点的负载值通过CPU使用率来反映时,判断任务执行节点当前的CPU使用率是否小于一预设阈值(例如60% ),当小于时,执行步骤S304,否则,执行步骤S303。在步骤S303中,拒绝向该任务执行节点分配任务。在本实施例中,为了避免任务执行节点负载过重,影响任务的执行效率,调度节点拒绝负载值大于或等于一阈值的任务执行节点的任务分配请求。在步骤S304中,根据所述任务执行节点的当前可用内存空间,为该任务执行节点进行任务调度。在本实施例中,为了避免新分配的任务内存需求量过大,导致任务执行节点内存不足不能正常执行,以及影响正在执行的任务,导致调度节点发生故障等情况。本实施例调度节点在任务队列中依次扫描每个待分配任务,判断其中是否存在内存需求量小于或者等于所述任务执行节点当前可用内存空间的待分配任务,在存在时,调度节点将内存需求量小于或等于所述任务执行节点当前可用内存空间的任务分配给该任务执行节点;在不存在时,拒绝向该任务执行节点分配任务。在本实施例中,判断是否存在内存需求量小于或者等于所述任务执行节点当前可用内存空间的待分配任务具体为:判断任务执行节点中实际内存空间-已使用内存空间-任务执行节点系统预留内存空间-已分配任务预留内存空间-准备分配但未下发任务的内存空间的结果是否大于等于零,若是,则表示任务执行节点内存充足,调度节点可以下发该任务;反之则表示任务执行节点内存不足,调度节点拒绝向该任务执行节点下发任务,直至该任务执行节点重新申请任务。
在本发明实施例中,任务执行节点仍可根据预先部署的配置信息向调度节点请求任务,但在请求中会携带有该任务执行节点当前的负载值以及可用内存空间,调度节点根据该任务执行节点的负载值以及可用内存空间来决定是否向该任务执行节点分配任务,以及在分配任务时选择合适的任务进行分配,从而有效避免了任务执行节点过载、负载及内存不足等问题,提高了任务执行节点资源的利用率以及任务调度和执行的效率。实施例三:图4示出了本发明实施例三提供的任务调度设备的组成结构,为了便于说明,仅不出了与本发明实施例相关的部分。该任务调度设备可以是运行于多任务调度系统内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到多任务调度系统中或者运行于多任务调度系统的应用系统中。该任务调度设备4包括请求信息接收单元41、第一判断单元42、第二判断单元43以及分配单元44,其具体功能如下:请求信息接收单元41,用于接收任务执行节点发送的获取任务的请求,所述请求中携带有该任务执行节点当前的负载值以及可用内存空间;第一判断单元42,用于判断所述负载值是否小于一阈值;第二判断单元43,用于在所述第一判断单元42判断结果为是时,判断是否存在内存需求量小于或者等于所述任务执行节点当前可用内存空间的待分配任务;分配单元44,用于在所述第二判断单元43判断结果为是时,将将内存需求量小于或等于所述任务执行节点当前可用内存空间的任务分配给该任务执行节点。进一步的,为避免任务执行节点负载过重或内存不足问题,提高任务执行节点资源的利用率以及任务调度和执行的`效率,所述调度节点4还包括拒绝分配单元45,用于在所述任务执行节点当前的负载值大于或者等于所述一阈值,或者待分配任务的内存需求量都大于所述任务执行节点的当前可用内存空间时,拒绝向该任务执行节点分配任务。本实施例提供的任务调度设备可以使用在前述对应的多任务调度方法中,详情参见上述多任务调度方法实施例二的相关描述,在此不再赘述。实施例四:图5示出了本发明实施例四提供的任务执行设备的组成结构,为了便于说明,仅不出了与本发明实施例相关的部分。该任务执行设备可以是运行于多任务调度系统内的软件单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到多任务调度系统中或者运行于多任务调度系统的应用系统中。该任务执行设备5包括请求信息发送单元51和任务接收单元52,其具体功能如下:请求信息发送单元51,用于向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间;任务接收单元52,用于接收调度节点分配的任务。在本实施例中,所述任务执行节点当前的可用内存空间的计算公式为:可用内存空间=实际内存空间-已使用内存空间-任务执行节点系统预留内存空间-已分配任务预留内存空间。本实施例提供的任务执行设备可以使用在前述对应的多任务调度方法中,详情参见上述多任务调度方法实施例二的相关描述,在此不再赘述。本领域普通技术人员可以理解为实施例三和四设备所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。综上所述,本发明基于容量的任务调度算法以任务内存设置的最大值作为任务是否被分发的依据,通过将各个节点的负载情况、任务执行进度以及相应的任务的内存占用进行记录。节点收集的状态信息在索取任务时上报给控制节点的任务调度器,任务调度器根据计算节点的状态从当前可执行任务队列中选择符合要求的任务下发给计算节点,从而有效避免了任务执行节点过载、负载及内存不足等问题,提高了任务执行节点资源的利用率以及任务调度和执行的效率。本发明实现简单,实用性强。

本领域普通技术人员还可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,包括R0M/RAM、磁盘、光盘等。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多任务调度方法,其特征在于,所述方法包括: 任务执行节点向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间; 调度节点判断所述负载值是否小于一阈值,若是,根据所述任务执行节点的当前可用内存空间,为该任务执行节点进行任务调度。
2.如权利要求1所述的方法,其特征在于,所述根据所述任务执行节点的当前可用内存空间,为该任务执行节点进行任务调度具体包括: 判断调度节点中是否存在内存需求量小于或者等于所述任务执行节点当前可用内存空间的待分配任务; 若是,调度节点将内存需求量小于或等于所述任务执行节点当前可用内存空间的任务分配给该任务执行节点; 若否,拒绝向该任务执行节点分配任务。
3.如权利要求1所述的方法,其特征在于,所述方法还包括: 当调度节点判定所述任务执行节点当前的负载值大于或者等于所述一阈值时,拒绝向该任务执行节点分配任务。
4.如权利要求1所述的方法,其特征在于,所述任务执行节点当前的可用内存空间的计算公式为: 可用内存空间=实际内存空间-已使用内存空间-任务执行节点系统预留内存空间-已分配任务预留内存空·间。
5.一种任务调度设备,其特征在于,所述设备包括: 请求信息接收单元,用于接收任务执行设备发送的获取任务的请求,所述请求中携带有该任务执行设备当前的负载值以及可用内存空间; 第一判断单元,用于判断所述负载值是否小于一阈值; 第二判断单元,用于在所述第一判断单元判断结果为是时,判断是否存在内存需求量小于或者等于所述任务执行节点当前可用内存空间的待分配任务; 分配单元,用于在所述第二判断单元判断结果为是时,将将内存需求量小于或等于所述任务执行节点当前可用内存空间的任务分配给该任务执行节点。
6.如权利要求5所述的设备,其特征在于,所述设备还包括: 拒绝分配单元,用于在所述任务执行节点当前的负载值大于或者等于所述一阈值,或者待分配任务的内存需求量都大于所述任务执行节点的当前可用内存空间时,拒绝向该任务执行节点分配任务。
7.一种任务执行设备,其特征在于,所述设备包括: 请求信息发送单元,用于向任务调度设备发送获取任务的请求,该请求中携带有该任务执行设备当前的负载值以及可用内存空间; 任务接收单元,用于接收任务调度设备分配的任务。
8.如权利要求7所述的设备,其特征在于,所述任务执行节点当前的可用内存空间的计算公式为: 可用内存空间=实际内存空间-已使用内存空间-任务执行节点系统预留内存空间-已分配任务预留内存空间。
9.一种多任务调度系统,其特征在于,所述系统包括如权利要求5或6任一所述的任务调度设备以及至少一个如权利要求7或8所述的任务执行设备。
10.如权利要求9所述 的系统,其特征在于,该系统是基于MapReduce架构的。
全文摘要
本发明适用于数据处理技术领域,提供了一种基于容量的多任务调度方法及系统,所述方法包括任务执行节点向调度节点发送获取任务的请求,该请求中携带有该任务执行节点当前的负载值以及可用内存空间;调度节点判断所述负载值是否小于一阈值,若是,根据所述任务执行节点的当前可用内存空间,为该任务执行节点进行任务调度。通过本发明,可有效避免任务执行节点过载、负载及内存不足等问题,提高任务执行节点资源的利用率以及任务调度和执行的效率。
文档编号G06F9/46GK103246550SQ201210028768
公开日2013年8月14日 申请日期2012年2月9日 优先权日2012年2月9日
发明者徐钊, 赵彦荣, 郭玮, 李均, 赵伟, 张书彬, 洪坤乾 申请人:深圳市腾讯计算机系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1