一种文件作业任务的调度方法及系统的制作方法

文档序号:6356928阅读:159来源:国知局
专利名称:一种文件作业任务的调度方法及系统的制作方法
技术领域
本申请涉及分布式计算领域,特别是涉及一种文件作业任务的调度方法及系统。
背景技术
MapReduce是由Google公司发明,是一种新兴的并行编程模式。它将并行化、 容错、数据分布、负载均衡等放在一个库里,将系统对数据的所有操作都归结为两个步骤 Map (映射)阶段和Reduce (化简)阶段,使那些没有多少并行计算经验的开发人员也可以开发并行应用,以进行对海量数据的并行处理。在使用MapReduce模型进行大规模数据的并行计算时,在Map阶段,对于一个 MapReduce作业(即用户的一个计算请求)需要拆分成多个Map任务分发到多个节点上执行,采用移动程序(一个Map任务)到节点来完成计算,以减少移动程序造成系统IO开销。MapReduce作业在执行过程中需要的数据集合称为文件,一个文件被分为多个部分进行存储,划分出来的单位数据称为数据块,且为了防止数据块丢失,每个数据块还同时设置有多个副本数据块,数据块与其多个副本数据块的功能作用相同,所述数据块存储在多个数据节点上,MapReduce任务中的一个Map任务在一个数据块上执行。由于数据块分散在多个不同数据节点上,而Map任务也需要分发到多个不同数据节点执行,于是存在不同的Map任务分发到与其所需的数据块不在同一节点的情况,造成任务执行过程中IO开销的增加。

发明内容
为解决上述技术问题,本申请实施例提供一种文件作业任务的调度方法及系统, 使在对MapReduce作业调度时,一个Map任务执行所在的节点也是其计算所需数据所在节点;减少了任务并发执行时数据移动造成的IO开销的增加。技术方案如下一种文件作业任务的调度方法,包括查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个;计算所述文件对其每个数据块所在节点产生的负载及所述节点的运行负载;对所述节点的运行负载进行比较,获取负载最轻的节点作为预设节点;当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。上述的方法,优选的,所述文件对其每个数据块所在节点产生的负载的计算过程具体为计算执行作业任务所需文件具有的数据块数量及处于所述节点上的属于所述文件的数据块数量;将处于所述节点上的属于所述文件的数据块数量与所述文件具有的数据块数量的比值作为所述文件对所述节点产生的负 载。
上述的方法,优选的,所述节点的运行负载的计算过程具体为计算所述节点上执行作业任务的文件对所述节点产生的负载;将所述节点上执行作业任务的不同文件对所述节点产生的负载的和作为所述节点的运行负载。上述的方法,优选的,所述负载阈值根据所述节点的运行状况设定,当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和未小于负载阈值时,舍弃该预设节点,调度所述作业任务至满足负载阈值的节点执行。一种文件作业任务的调度系统,包括查找单元、计算单元、比较单元和调度单元;其中所述查找单元用于查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个;

所述计算单元用于计算所述文件对其每个数据块所在节点产生的负载机所述节点的运行负载;所述比较单元用于对所述计算单元计算得到的所述节点的运行负载进行比较,并获取负载最轻的节点作为预设节点;所述调度单元用于当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。上述的调度系统,优选的,所述计算单元包括第一计算子单元;所述第一计算子单元用于计算执行作业任务所需文件具有的数据块数量及处于所述节点上的属于所述文件的数据块的数量;并计算处于所述节点上的属于所述文件的数据块数量与所述文件具有的数据块的比值,将所述比值作为所述文件对所述节点产生的负载。上述的调度系统,优选的,所述计算单元还包括第二计算子单元;所述第二计算子单元用于对所述第一计算子单元计算的所述节点上执行作业任务的不同文件对所述节点产生的负载求和,并将所述负载的和作为所述节点的运行负载。上述的调度系统,优选的,所述调度单元包括阈值设定子单元;所述阈值设定子单元用于对所述节点的负载阈值进行设定。由以上本申请实施例提供的技术方案可见,本申请实施例提供的文件作业任务的调度方法及系统,在文件未被MapReduce使用前,计算该文件每个数据块所在节点的负载, 并对文件的每一个数据块找出其对应的一个负载最轻的节点作为将来需要使用该数据块进行计算的任务的预设节点;当针对该文件有作业提交时,系统将分发该作业的任务到已经计算好的预设节点上执行,从而最大化的满足了数据本地性,减少了任务并发执行时数据移动造成IO开销的增加,并且使系统的负载更加均衡。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的文件作业任务的调度方法流程图;图2为本申请实施例提供的文件作业任务的调度方法的一详细流程图;图3为本申请实施例提供的文件作业任务的调度系统的结构示意图;图4为本申请实施例提供的文件作业任务的调度系统的一详细结构示意图;图5为本申请实施例提供的文件作业任务的调度系统的又一详细结构示意图;图6为本申请实施例提供的文件作业任务的调度系统的再一详细结构示意图。
具体实施例方式为了使本技术领域的人员更好地理解本申请方案。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。本申请实施例提供的文件作业任务的调度方法的流程图如图1所示,包括步骤SlOl 查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个;文件的每个数据块均存在副本数据块,数据块与其副本数据块是等效的,查找文件的数据块所在的节点包括查找数据块及其副本数据块所在的节点;步骤S102 计算所述文件对其每个数据块所在节点产生的负载及所述节点的运行负载;文件的不同数据块可能存储在不同节点上,或文件的几个不同数据块同时存储在同一节点上,于是文件对每个节点产生的负载不同;同时,同一个节点上,可能存在多个不同文件同时被使用的情况,所述多个不同文件对所述节点产生的负载和为所述节点的运行负载;步骤S103 对所述节点的运行负载进行比较,获取负载最轻的节点作为预设节
点;步骤S104 当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。需要对以上方法进行说明的是以上方法针对的是文件中某一数据块及所述数据块副本所在节点之间的调度过程,在作业执行过程中,由于作业被分割为多个Map任务,各个Map任务所需求的文件数据块也被存储在不同的节点上,对于每个Map任务执行时,都可通过本申请提供的方法对Map 任务执行所需的数据块及所述数据块的副本数据块所在节点进行选择,选择节点负载最轻的节点进行Map任务的执行。为了更加直观详尽的对本申请实施例提供的文件作业任务调度方法进行描述,以下以一具体实施例对本申请所述方法进行举例设定文件F,文件F所分成的数据块的总数量为S (F);某一节点N上存储文件F的数据块的数量为S (F,N);则文件F对其数据块所在节点产生的负载为WF(N) = S (F,N)/S (F),即所述文件对其数据块所在节点产生的负载为所述节点上属于所述文件的数据块数量与所述文件具有的数据块数量的比值。
节点的数量很多,文件F对于每一个节点都会产生负载,本申请实施例提供的调度方法中,将文件F对每个节点产生负载中的最大值作为文件F自身的负载,即W(F)= max(WF(N));节点N上正在执行任务的文件可能有多个,节点N上正在执行任务的文件对所述节点产生的负载总和为所述节点的运行负载,假设节点N上有η个文件正在执行,则节点N的运行负载为W (N) = Y,WF
1对与节点的负载通过计算得出后,对于节点的选择过程即为针对文件F,对于其每一个数据块选择该数据块及所有副本数据块存储的节点中负载最轻的节点。如文件F 有 η 个数据块 F= (Bi,Β2,Β3,· · · Bn);针对数据块Bi,i的取值范围为1 n,假设Bi有两个副本,Bi及其副本存储的节点分别为Nj, Nk, Ni ;当Nj的运行负载小于Nk,Ni的运行负载,即W(Nj) ( W(Nk)且W(Nj) ^ff(Ni)时,选择Nj作为Bi的预设节点,当有作业任务提交时,将作业任务中需要使用Bi数据块的作业任务调度到节点Nj上执行。本申请实施例提供的文件作业任务的调度方法的一详细执行过程如图2所示,包括对于文件F ;步骤S201 找出文件F的所有数据块所在的位置节点;步骤S202 计算文件的负载;步骤S203 计算每个节点N的运行负载;步骤S204 对每个数据块汇总找出所在节点负载最轻的节点作为预设节点;步骤 S204处于等待状态;当步骤S205执行,即对于文件F用户提交了一个MapReduce作业时,在步骤S205 与步骤S204的结合下,执行步骤S206 ;步骤S206 对于节点集中的每个节点N,W (N)+WF (N)是否小于预设值;如果小于则执行步骤S207 调度作业的任务到预设节点上执行;否则,返回步骤S204 ;对剩余节点中负载最轻的节点进行选择,将该节点作为新的预设节点。以上方法针对Map任务所需的数据块及其副本数据块执行,当选择的预设节点满足W(N)+WF(N) <预设值时,分发任务到所对应的所需数据块计算得到的负载最轻的节点上执行。所述预设值根据所述节点的运行状况设定,预设值的类型可为多种类型,系统运行时,操作人员可根据实际运行状况,对所述预设值进行调整。通过以上方法实施例的表述可知,本方法根据采用MapReduce模型进行计算的系统的文件存储结构,在一个文件未被MapReduce使用前,计算该文件每个数据块所在节点的负载,并对文件的每一个数据块找出其对应的一个负载最轻的节点作为将来需要使用该数据块进行计算的任务的预设节点。当针对该文件有作业提交时,系统将分发该作业的任务到已经计算好的预设节点上执行;从而最大化的满足数据本地性的同时使系统的负载更加均衡。可见,本申请实施例提供的方法面向任务分发时的节点数据本地性,适用于使用 MapReduce模型进行作业调度的计算集群,确保任务并发执行时有高的数据本地性,以减少任务并发执行时数据移动造成的IO开销的增加,使MapReduce模型得到更好的利用。对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。针对以上方法实施例,本申请实施例还提供了一种文件作业任务的调度系统,其结构示意图如图3所示,包括查找单元301、计算单元302、比较单元303和调度单元304 ;其中查找单元301用于查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个;计算单元302用于计算所述文件对其每个数据块所在节点产生的负载机所述节点的运行负载;比较单元303用于对所述计算单元302计算得到的所述节点的运行负载进行比较,并获取负载最轻的节点作为预设节点;调度单元304用于当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。在上述系统中,计算单元302包括第一计算子单元305,其结构示意图如本申请实施例图4所示第一计算子单元305用于计算执行作业任务所需文件具有的数据块数量及处于所述节点上的属于所述文件的数据块的数量;并计算处于所述节点上的属于所述文件的数据块数量与所述文件具有的数据块的比值,将所述比值作为所述文件对所述节点产生的负载。在图4所示系统的基础上,计算单元302还包括第二计算子单元306 ;其结构示意图如图5所示第二计算子单元306用于对所述第一计算子单元305计算的所述节点上执行作业任务的不同文件对所述节点产生的负载求和,并将所述负载的和作为所述节点的运行负载。本申请实施例提供的文件作业任务的调度系统中,调度单元304包括阈值设定子单元307 ;所述阈值设定子单元307用于对所述节点的负载阈值进行设定。对于系统实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本申请的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请 原理的前提下,还可以做出若干改进和润 饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
1.一种文件作业任务的调度方法,其特征在于,包括查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个; 计算所述文件对其每个数据块所在节点产生的负载及所述节点的运行负载; 对所述节点的运行负载进行比较,获取负载最轻的节点作为预设节点; 当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。
2.根据权利要求1所述的方法,其特征在于,所述文件对其每个数据块所在节点产生的负载的计算过程具体为计算执行作业任务所需文件具有的数据块数量及处于所述节点上的属于所述文件的数据块数量;将处于所述节点上的属于所述文件的数据块数量与所述文件具有的数据块数量的比值作为所述文件对所述节点产生的负载。
3.根据权利要求2所述的方法,其特征在于,所述节点的运行负载的计算过程具体为 计算所述节点上执行作业任务的文件对所述节点产生的负载;将所述节点上执行作业任务的不同文件对所述节点产生的负载的和作为所述节点的运行负载。
4.根据权利要求1所述的方法,其特征在于,所述负载阈值根据所述节点的运行状况设定,当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和未小于负载阈值时,舍弃该预设节点,调度所述作业任务至满足负载阈值的节点执行。
5.一种文件作业任务的调度系统,其特征在于,包括 查找单元、计算单元、比较单元和调度单元;其中所述查找单元用于查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个;所述计算单元用于计算所述文件对其每个数据块所在节点产生的负载机所述节点的运行负载;所述比较单元用于对所述计算单元计算得到的所述节点的运行负载进行比较,并获取负载最轻的节点作为预设节点;所述调度单元用于当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。
6.根据权利要求5所述的调度系统,其特征在于,所述计算单元包括第一计算子单元; 所述第一计算子单元用于计算执行作业任务所需文件具有的数据块数量及处于所述节点上的属于所述文件的数据块的数量;并计算处于所述节点上的属于所述文件的数据块数量与所述文件具有的数据块的比值,将所述比值作为所述文件对所述节点产生的负载。
7.根据权利要求6所述的调度系统,其特征在于,所述计算单元还包括第二计算子单元;所述第二计算子单元用于对所述第一计算子单元计算的所述节点上执行作业任务的不同文件对所述节点产生的负载求和,并将所述负载的和作为所述节点的运行负载。
8.根据权利要求1所述的调度系统,其特征在于,所述调度单元包括阈值设定子单元; 所述阈值设定子单元用于对所述节点的负载阈值进行设定。
全文摘要
本申请公开了一种文件作业任务的调度方法,包括查找执行作业任务所需文件的数据块所在的节点,所述数据块的数量为多个;计算所述文件对其每个数据块所在节点产生的负载及所述节点的运行负载;对所述节点的运行负载进行比较,获取负载最轻的节点作为预设节点;当所述预设节点上由所述文件产生的负载与所述预设节点的运行负载之和小于设定负载阈值时,调度所述作业任务至所述预设节点执行。通过本申请提供的方法当针对文件有作业提交时,系统将分发该作业的任务到已经计算好的预设节点上执行,从而最大化的满足了数据本地性,减少了任务并发执行时数据移动造成IO开销的增加,并且使系统的负载更加均衡。
文档编号G06F9/46GK102156659SQ20111007535
公开日2011年8月17日 申请日期2011年3月28日 优先权日2011年3月28日
发明者吴泉源, 周斌, 杨树强, 滕猛, 王凯, 王怀民, 罗荣凌, 舒琦, 贾焰, 赵辉, 金松昌, 陈志坤, 韩伟红 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1