应用于图算法的MapReduce系统中的任务调度方法、装置和系统的制作方法

文档序号:6440115阅读:184来源:国知局
专利名称:应用于图算法的Map Reduce系统中的任务调度方法、装置和系统的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用于图算法的Map Reduce系统中的任务调度方法、装置和系统。
背景技术
计算机和网络技术的发展使得图算法成为热门的研究和分析对象,实际生活中的很多问题都可以采用图算法解决。例如,计算某个地图中从源出发地到目的地的最短路径, 或者管道铺设中如何设计出最佳的管道铺设路线,或者规划公交线路,或者规划合理的旅游线路等,图算法在实际生活中具有重要的应用价值。图算法是将上述问题抽象为包括多个顶点及其连接关系的图再进行计算,其计算量通常比较大;分布式并行计算方式比较适合于这种高效处理大型图对象的计算。其中,Map Reduce即是专用于处理大规模计算量的一种分布式计算框架。
Map Reduce是Google提出的一种实现分布式并行计算的通用计算框架,可用于大规模数据集的并行计算;该系统对数据的所有操作都可以归结为两个步骤:Map (映射) 阶段和Reduce (化简)阶段。图1为现有技术Map Reduce系统的作业处理流程示意图,如图1所示,在正式执行Map函数前,需要对输入数据进行“分片”(即图1中所示的“片段”, 也就是将海量数据分成大小相等的“块”),每一个Map任务处理一个“分片”。分片完成后, 由Map函数对数据进行“预处理”,将每条预处理结果以<key,value)对的形式输出。在进入Reduce阶段之前,还要将各个Map任务中相关的数据(key相同的数据)归结到一起,发往一个Reduce任务,这其中涉及到多个Map任务的输出“混合地”对应多个Reduce任务的情况,该过程可视为“洗牌”。最后进入Reduce阶段。相同key的Map任务输出会到达同一个Reduce任务;Reduce任务对key相同的多个value进行“Reduce操作”,最后,一个key 的一串value经过Reduce函数处理后,作为一个value输出。
但是上述的Map Reduce系统应用于图算法时存在以下技术缺陷由于图算法对应的图对象本身的计算密度常常不是均勻分布的,采用Map Reduce中的“平均分片”的Map 任务分配方法进行Map任务分割后,基于不同Map任务的完成时间依赖于分片中的数据值本身和数据分布,而不是数据块大小,所以会造成不同Map任务包括的计算量是不同的,某个(些)Map任务包括的计算量比较大,其完成时间较其它Map任务长很多,这些完成时间较长的Map任务导致采用Map Reduce处理图算法中的计算时,系统整体效率很低。发明内容
本发明提供一种应用于图算法的Map Reduce系统中的任务调度方法、装置和系统,以提高Map Reduce处理图算法时的系统整体效率。
本发明一方面提供一种应用于图算法的Map Reduce系统中的任务调度方法,所述 Map Reduce系统包括主控设备和用于执行计算任务的多个工作设备;所述任务调度方法包括
所述主控设备分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度,并接收所述工作设备中的第一工作设备发送的用于表明所述第一工作设备已经完成计算任务的空闲通知消息;
所述主控设备在所述工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令,根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务。
本发明另一方面提供一种应用于图算法的Map Reduce系统中的任务调度方法,所述Map Reduce系统包括主控设备和用于执行计算任务的工作设备;所述任务调度方法包括
所述工作设备中的第二工作设备接收主控设备发送的资源调度指令,所述资源调度指令是所述主控设备在所述第二工作设备的处理进度低于预设的进度阈值时发送,并且所述资源调度指令用于所述主控设备将未完成的计算任务中的一部分分配至所述第一工作设备,以使得所述第一工作设备辅助第二工作设备完成计算任务。
本发明又一方面提供一种应用于图算法的Map Reduce系统中的主控设备,包括
进度监控单元,用于分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度;
状态监控单元,用于接收所述工作设备中的第一工作设备发送的用于表明所述第一工作设备已经完成计算任务的空闲通知消息;
资源调度单元,用于在所述进度监控单元监控得知工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令,根据所述资源调度指令将所述第二工作设备将未完成的计算任务中的一部分分配至所述第一工作设备, 使得所述第一工作设备辅助第二工作设备完成计算任务。
本发明再一方面提供一种应用于图算法的Map Reduce系统中的工作设备,包括
调度接收单元,用于接收主控设备发送的资源调度指令,所述资源调度指令是所述主控设备在所述第二工作设备的处理进度低于预设的进度阈值时发送,并且所述资源调度指令用于所述主控设备将未完成的计算任务中的一部分分配至所述第一工作设备,以使得第一工作设备辅助本地完成计算任务。
本发明还一方面提供一种应用于图算法的Map Reduce系统中的任务调度系统,包括主控设备、第一工作设备和第二工作设备;
所述主控设备,用于分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度;以及用于在所述工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令;并根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务;
所述第一工作设备,用于向所述主控设备发送用于表明所述第一工作设备已经完成计算任务的空闲通知消息。
本发明提供的应用于图算法的Map Reduce系统中的任务调度方法、装置和系统,通过由主控设备监控各工作设备的处理进度,并在发现其中一个设备的处理进度太低且低于预设的进度阈值时,指示已经完成计算任务的处于空闲状态的另一设备辅助该设备完成计算任务,相对于现有技术中处理太慢的设备拖累整个系统的效率,本发明的方案实际上是进行了计算资源(即工作设备)的全局调度,使得已经空闲出来的工作设备辅助处理进度慢得设备计算,从而防止由于某个设备进度过慢而使得系统整体效率下降,提高了 MapReduce系统处理图算法时的系统整体效率。


图1为现有技术Map Reduce系统E
图2为本发明应用于图算法的Map 示意图3为本发明应用于图算法的Map 点辅助加载流程示意图4为本发明应用于图算法的Map 作设备监控顶点状态流程示意图5为本发明应用于图算法的Map 控设备根据处理进度调度资源流程示意图6为本发明应用于图算法的Map 图7为本发明应用于图算法的Map 图8为本发明应用于图算法的Map 示意图。1作业处理流程示意图;Reduce系统中的任务调度方法实施例的流程Reduce系统中的任务调度方法实施例中的顶Reduce系统中的任务调度方法实施例中的工Reduce系统中的任务调度方法实施例中的主Reduce系统中的主控设备实施例的结构示意Reduce系统中的工作设备实施例的结构示意Reduce系统中的任务调度系统实施例的结构具体实施方式
本发明的主要技术方案为,由Map Reduce系统中的主控设备获取各工作设备的计算任务处理进度,并对该进度进行监控,当主控设备发现所述工作设备中的例如第二工作设备的处理进度远远落后于其他设备的处理进度,且低于预设的进度阈值时,主控设备可以将已经完成计算任务并处于空闲状态的第一工作设备分配至该第二工作设备,即使得第二工作设备将未完成的计算任务中的一部分分配至第一工作设备,第一工作设备辅助第二工作设备完成计算任务,由此相对于现有技术提高Map Reduce系统的整体处理效率。
下面通过附图和具体实施例,对本发明的技术方案做进一步的详细描述。
实施例一
图2为本发明应用于图算法的Map Reduce系统中的任务调度方法实施例的流程示意图。其中,Map Reduce系统包括主控设备(Master)和用于执行计算任务的多个工作设备(Worker),该主控设备用于接收Map Reduce系统的输入数据,并负责将输入数据分割成多个Map任务,再将分割成的Map任务分发给各工作设备去执行计算,工作设备执行计算任务即是执行计算Map任务。如图2所示,本实施例的方法可以包括
201、主控设备将输入数据分割为多个Map任务,并将Map任务分发给各工作设
其中,输入数据即为图算法中所涉及到的数据,图算法是将实际问题抽象成图对象后进行计算的,因此图算法的计算中包括多个顶点。本实施例在将输入数据分割为Map 任务时,打破了Map Reduce系统通常采用的“平均分片”方式,而是根据图算法的特点,采用面向顶点计算的方法,将顶点作为独立的计算单位,并将各顶点分别分配至各个Map任务。
具体的,本实施例的Map任务的分割算法需要基于本实施例的对顶点的结构体定义,如下,该顶点的结构体定义中包括顶点和从这些顶点出发的边
Struct Vertex{
int link [η] ;//η表示与该顶点相连的其它顶点,数值根据图的实际连接由用户确定。
bool state ;// 顶点状态,标记是否活跃(active | inactive)。
struct Vertex^next ;
}
由上述的顶点定义可知,将顶点分配至Map任务,其实是将该顶点以及从该顶点出发的边分配至Map任务,相当于将图对象划分为了以各个顶点为中心的一个个计算单元,每一个计算单元都包括一个顶点以及该顶点所连接的边,Map任务可以包括一个或者多个这样的计算单元。
在上述顶点结构体定义的基础上,本实施例在应用于图算法时,基于MapReduce 系统实现图到链表的转换,该链表即相当于图对象中的各个顶点之间的连接关系表。具体的,在Map阶段<k,v> = Xk', ν’ >。其中,输入<k,v>键值对表示原始图中具有邻接关系的顶点对集合,输出<k’,ν’ >表示一条边对,其中k’是源顶点,ν’为目的顶点。为了论述简单,此处以简单无线图为例。其中,规定k’ <v’,从而避免重复。在Reduce阶段<k,,list<V, =Xk' ,δ(ν)>,其中 δ(ν,)={V,I V,εδ(ν)η V,>ν};其中,list<v’>表示有多个目的顶点,为所述多个目的顶点的列表;δ(ν)为经过Reduce阶段的计算后从所述多个目的顶点中最终确定的目的顶点,并且该目的顶点的标识大于输入的目的顶点标识(顶点标识一般用自然数表示)。经过该过程,实现将原始图转化为结构体链表的形式。
具体的,可以采用如下的分割方法主控设备在将图算法中的原始图转化为结构体链表的同时,还为链表中的每个顶点结构体分别分配顶点标识(即顶点ID),可以用自然数依次确定ID。然后计算顶点ID mod N(取模运算)的结果从而确定将该顶点分配至哪个 Map,其中,N表示Map任务的总数。例如,假设顶点ID为12,Map任务的总数N为5,则“顶点ID mod N”为12除以5的余数即为2,据此可以将该顶点分配至标识为2的Map任务。
进一步的,由上述的顶点结构体的定义可以看到,本实施例还为每个顶点增加了标记位,即"bool state ;//顶点状态,标记是否活跃(active | inactive),,,在计算过程中记录是否为活跃顶点(active或者inactive);在主控设备可以维护全部顶点链表的全局状态,即主控设备可以全局整体记录每个顶点的活跃与否的状态。
上述为顶点增加标记位的作用是,一方面,在本实施例的后续步骤中,工作设备可以根据该标记位判断顶点对应的计算任务是否完成,并及时向主控设备报告顶点状态以及设备本身空闲与否的状态,以便主控设备进行资源调度;另一方面,也可以通过标记位记录该顶点是否已经被计算,图算法中不可避免会遇到很多迭代和递归处理,可以防止该顶点被重复计算。上述两方面的作用必然会使得Map Reduce系统的整体处理效率提高。
进一步的,每个顶点在计算时通常被分配给一个工作设备,在计算过程中,被分配给其它工作设备的顶点也可能被加载到本工作设备上来以辅助计算,这种情况下,为保证每一个顶点计算的唯一性,防止重复计算,本实施例的主控设备还记录每个顶点首次被分配的工作设备,使得该顶点在系统中仅计算一次。例如,当主控设备需要将第三工作设备的顶点加载到第四工作设备上辅助计算时,就可以查看该顶点的首次分配工作设备,如果第四工作设备不是首次分配设备,则主控设备可以直接将该顶点加载到第四工作设备上,其中,该顶点是已经计算完成的顶点,将该顶点加载到第四工作设备上,实质上是直接将计算完成的顶点加载到第四工作设备上,则第四工作设备可以直接使用该顶点的计算结果。
202、工作设备计算Map任务,并监控分配至该工作设备的顶点的状态;
其中,由201可知,各顶点被分配至各Map任务,该Map任务被分配至工作设备;并且,顶点具有标记位。本实施例中,工作设备在执行计算时,可以监控分配在该设备上的各顶点的状态,例如是否是活跃顶点。
例如,假设该Map Reduce系统中的工作设备中的第三工作设备,其检测发现位于其上的第三顶点已经完成计算任务,所述第三顶点对应的状态标识为完成标识(该完成标识指的是非活跃标记位inactive),则继续执行203。需要说明的,本实施例中的这里以及后续的步骤中,出现的例如“第三顶点”、“第三工作设备”、“第四顶点”等仅仅是作为顶点或者设备的一个标识,并不作为对具体哪个设备或顶点的限制。
203、工作设备向主控设备上报顶点状态;
例如,在202中,第三工作设备发现其上的第三顶点对应的计算任务已经完成,该顶点的状态为非活跃,则第三工作设备向主控设备发送顶点状态通知消息,通知主控设备第三顶点已经计算完成,则主控设备可以根据该顶点状态通知消息,将其所维护的顶点状态表(即顶点链表)中的顶点状态设置为inactive (完成标识)。
所述的上报顶点状态的作用是,主控设备在接收到例如第四工作设备发送的用于请求加载所述第三顶点的顶点加载申请时,当所述第三顶点的状态为完成标识时,将所述第三顶点分配至所述第四工作设备。即,主控设备在接收到顶点加载辅助计算的请求时,会优先将已经计算完成的顶点分配至所需设备,以避免重复计算,提高系统的处理效率。此外,若申请加载的顶点尚未完成计算或者还没开始计算,主控设备不对其进行二次分配,而是要等待其在初次分配的工作设备上计算完成时,再将该计算完成的顶点加载到请求加载顶点进行辅助计算的工作设备上。
图3为本发明应用于图算法的Map Reduce系统中的任务调度方法实施例中的顶点辅助加载流程示意图,如图3所示,在图算法的计算中,若某一顶点需要其它顶点辅助计算,而该顶点恰好在同一个Map上,则可以直接计算;否则,则向主控设备发送上述的顶点加载申请,加载所需顶点,该顶点是主控设备选择的已经完成计算任务的非活跃顶点。
204、工作设备上报空闲通知消息,用于通知主控设备该工作设备已经计算完成, 处于空闲状态;
例如,工作设备中的第一工作设备上保存着该设备被分配的所有顶点的计算情况,第一工作设备可以监控其上的各顶点的状态,具体可以在第一工作设备上启动一个轮询线程,循环访问其上各顶点的计算情况。若发现所有顶点的状态都为非活跃,即表明该第一工作设备上所有顶点对应的计算任务均已经完成,则第一工作设备向主控设备发送空闲通知消息,表明该第一工作设备已经完成计算任务,处于空闲状态,以使得主控设备可以全局再次统一分配该计算资源。
图4为本发明应用于图算法的Map Reduce系统中的任务调度方法实施例中的工作设备监控顶点状态流程示意图,如图4所示,工作设备会一直监控每个顶点的活跃状态, 如果活跃则移至下一个顶点,否则将该顶点的状态上报主控设备并移至下一个顶点(其中上报顶点状态即为203),若全部顶点均已经计算完毕,则上报主控设备该工作设备已经空闲。
205、主控设备监控各工作设备的处理进度,并进行资源调度;
其中,本实施例的主控设备可以全局监控系统中各工作设备的计算任务处理进度,并且还可以根据204中接收的空闲通知掌控系统中是否有空闲的计算资源,因此主控设备可以全局调度统筹分配计算资源,防止因为某个工作设备的计算进度过于滞后而影响整个系统的效率。
具体的,图5为本发明应用于图算法的Map Reduce系统中的任务调度方法实施例中的主控设备根据处理进度调度资源流程示意图,如图5所示,主控设备可以分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度,该进度可以是各工作设备上报至主控设备的,工作设备维护着分配给它计算的各顶点的计算情况,可以计算出自己的工作完成情况即进度。当发现某个工作设备的处理进度远滞后于其它工作设备,并且低于预设的进度阈值(可以由用户设定该阈值),则将已空闲出来的计算资源分配给它,从而防止因为某个工作设备进度过慢而使整个系统效率下降。
例如,主控设备发现工作设备中的第二工作设备的处理进度低于预设的进度阈值,并且第一工作设备已经完成计算任务处于空闲,则主控设备可以向第二工作设备发送资源调度指令,将第一工作设备分配至所述第二工作设备;所述的分配的意思是,主控设备可以控制将第二工作设备上未完成的计算任务中的一部分迁移至第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务。
本实施例的应用于图算法的Map Reduce系统中的任务调度方法,通过由主控设备监控各工作设备的处理进度,并在发现其中一个设备的处理进度太低且低于预设的进度阈值时,指示已经完成计算任务的处于空闲状态的另一设备辅助该设备完成计算任务,显著提高了用Map Reduce处理图算法计算量的效率,而图算法处理效率的提高必然带来各种实际应用问题的解决效率的提升,可以快速解决实际生活中所遇到的各种问题。
实施例二
图6为本发明应用于图算法的Map Reduce系统中的主控设备实施例的结构示意图,该主控设备可以执行本发明任意实施例的任务调度方法,本实施例只是对该设备的结构做简单说明,其具体的原理可以结合参见方法实施例所述。如图6所示,该主控设备可以包括进度监控单元61、状态监控单元62、资源调度单元63 ;其中,
进度监控单元61,用于分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度;
状态监控单元62,用于接收所述工作设备中的第一工作设备发送的用于表明所述第一工作设备已经完成计算任务的空闲通知消息;
资源调度单元63,用于在所述进度监控单元监控得知工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令,根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得第一工作设备辅助第二工作设备完成计算任务。
进一步的,该主控设备中的状态监控单元62,还用于接收所述工作设备中的第三工作设备发送的顶点状态通知消息,所述顶点状态通知消息用于表明所述第三工作设备中的第三顶点对应的计算任务已经完成;相应的,
该主控设备还包括状态维护单元64、辅助处理单元65 ;其中,状态维护单元64, 用于根据所述顶点状态通知消息,将本地所维护的顶点状态表中的所述第三顶点的状态设置为完成标识;辅助处理单元65,用于接收第四工作设备发送的用于请求加载所述第三顶点的顶点加载申请,并根据所述顶点加载申请,当所述第三顶点的状态设置为完成标识时, 将所述第三顶点分配至所述第四工作设备。
进一步的,该主控设备还包括顶点分配单元66、分配记录单元67 ;其中,顶点分配单元,用于为所述图算法中的各个顶点分别分配顶点标识,所述顶点标识为自然数;并根据每一顶点的顶点标识和Map任务的总数进行取模运算,根据取模结果分别将每一顶点分配至对应的Map任务;分配记录单元67,用于记录所述图算法中的每个顶点首次被分配的工作设备;以使得当接收到工作设备对顶点的顶点加载请求以辅助计算时,所述主控设备检测所述工作设备是否是所述顶点的首次被分配的工作设备;若否,则必须等待该顶点在其首次分配的工作设备计算完成后再加载到请求的工作设备上。
本实施例的应用于图算法的Map Reduce系统中的主控设备,通过设置进度监控单元和资源调度单元等,由主控设备监控各工作设备的处理进度,并在发现其中一个设备的处理进度太低且低于预设的进度阈值时,指示已经完成计算任务的处于空闲状态的另一设备辅助该设备完成计算任务,显著提高了用Map Reduce处理图算法计算量的效率,而图算法处理效率的提高必然带来各种实际应用问题的解决效率的提升,可以快速解决实际生活中所遇到的各种问题。
实施例三
图7为本发明应用于图算法的Map Reduce系统中的工作设备实施例的结构示意图,该工作设备可以执行本发明任意实施例的任务调度方法,本实施例只是对该设备的结构做简单说明,其具体的原理可以结合参见方法实施例所述。如图7所示,该工作设备可以包括调度接收单元71 ;其中,
调度接收单元71,用于接收主控设备发送的资源调度指令,所述资源调度指令是所述主控设备在本地的处理进度低于预设的进度阈值时发送,并且所述资源调度指令用于所述主控设备将本地未完成的计算任务中的一部分分配至第一工作设备,以使得第一工作设备辅助本地完成计算任务。其中,所述的本地指的是本实施例的工作设备。
其中,所述的将第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备指的是,将第二工作设备中的一些未计算的顶点加载到第一工作设备,即将第二工作设备的一些计算任务迁移至第一工作设备,将由第一工作设备进行计算。此外,主控设备在将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备时,还可以通过资源调度指令通知第二工作设备将迁移其上的哪些顶点,以使得第二工作设备得知后续可以不再对所述的迁移顶点进行计算;主控设备还指示第一工作设备加载所述的从第二工作设备迁移来的顶点进行计算。
进一步的,该工作设备还包括状态监控单元72、状态上报单元73 ;其中,状态监控单元72,用于分别查看被分配至本地的各顶点对应的计算任务是否已经完成;状态上报单元73,用于若所述各顶点的计算任务均已经完成,则向主控设备发送用于表明本地已经完成计算任务的空闲通知消息;
或者,状态监控单元72,还用于在检测发现本地的第三顶点已经完成计算任务,所述第三顶点对应的状态标识为完成标识;状态上报单元73,还用于向主控设备发送顶点状态通知消息,所述顶点状态通知消息用于表明所述第三顶点对应的计算任务已经完成,以使得所述主控设备根据所述顶点状态通知消息,将所维护的顶点状态表中的所述第三顶点的状态设置为完成标识。
进一步的,该工作设备还包括辅助申请单元74、辅助加载单元75 ;其中,辅助申请单元74,用于本地的第四顶点需要第三顶点辅助计算,并且所述第三顶点与第四顶点不在同一个Map任务上时,则向主控设备发送用于请求加载所述第三顶点的顶点加载申请; 辅助加载单元75,用于接收所述主控设备分配的第三顶点并加载,所述主控设备所维护的顶点状态表中的第三顶点的状态为完成标识。
本实施例的应用于图算法的Map Reduce系统中的工作设备,通过设置调度接收单元和调度处理单元等,由主控设备监控各工作设备的处理进度,并在发现其中一个设备的处理进度太低且低于预设的进度阈值时,指示已经完成计算任务的处于空闲状态的另一设备辅助该设备完成计算任务,显著提高了用Map Reduce处理图算法计算量的效率,而图算法处理效率的提高必然带来各种实际应用问题的解决效率的提升,可以快速解决实际生活中所遇到的各种问题。
实施例四
图8为本发明应用于图算法的Map Reduce系统中的任务调度系统实施例的结构示意图,该任务调度系统可以执行本发明任意实施例的任务调度方法,本实施例只是对该任务调度系统的结构做简单说明,其具体的原理可以结合参见方法实施例所述。如图8所示,该任务调度系统可以包括主控设备81、第一工作设备82、第二工作设备83 ;其中,
所述主控设备81,用于分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度;以及用于在所述工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令;并根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务;
所述第一工作设备82,用于向所述主控设备发送用于表明所述第一工作设备已经完成计算任务的空闲通知消息。
本实施例的应用于图算法的Map Reduce系统中的任务调度系统,通过由主控设备监控各工作设备的处理进度,并在发现其中一个设备的处理进度太低且低于预设的进度阈值时,指示已经完成计算任务的处于空闲状态的另一设备辅助该设备完成计算任务,显著提高了用Map Reduce处理图算法计算量的效率,而图算法处理效率的提高必然带来各种实际应用问题的解决效率的提升,可以快速解决实际生活中所遇到的各种问题。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种应用于图算法的Map Reduce系统中的任务调度方法,所述MapReduce系统包括主控设备和用于执行计算任务的多个工作设备;其特征在于,所述任务调度方法包括所述主控设备分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度, 并接收所述工作设备中的第一工作设备发送的用于表明所述第一工作设备已经完成计算任务的空闲通知消息;所述主控设备在所述工作设备中的第二工作设备的处理进度低于预设的进度阈值时, 向所述第二工作设备发送资源调度指令,根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务。
2.根据权利要求1所述的应用于图算法的MapReduce系统中的任务调度方法,其特征在于,所述图算法的计算中包括多个顶点;所述计算任务包括所述多个顶点对应的计算任务;还包括所述主控设备接收所述工作设备中的第三工作设备发送的顶点状态通知消息,所述顶点状态通知消息用于表明所述第三工作设备中的第三顶点对应的计算任务已经完成;所述主控设备根据所述顶点状态通知消息,将本地所维护的顶点状态表中的所述第三顶点的状态设置为完成标识;所述主控设备接收第四工作设备发送的用于请求加载所述第三顶点的顶点加载申请, 并根据所述顶点加载申请,当所述第三顶点的状态设置为完成标识时,将所述第三顶点分配至所述第四工作设备。
3.根据权利要求1所述的应用于图算法的MapReduce系统中的任务调度方法,其特征在于,还包括所述主控设备记录所述图算法中的每个顶点首次被分配的工作设备;当接收到工作设备的顶点加载请求时,所述主控设备检测所述工作设备是否为所述顶点的首次被分配的工作设备;若否,则在所述顶点在所述首次被分配的工作设备计算完成后再加载到所述工作设备。
4.根据权利要求1-3任一所述的应用于图算法的MapIfeduce系统中的任务调度方法, 其特征在于,所述计算任务为Map任务;所述主控设备为所述图算法中的各个顶点分别分配顶点标识,所述顶点标识为自然数;所述主控设备根据每一顶点的顶点标识和Map任务的总数进行取模运算,并根据取模结果分别将每一顶点分配至对应的Map任务。
5.一种应用于图算法的Map Reduce系统中的任务调度方法,所述MapReduce系统包括主控设备和用于执行计算任务的工作设备;其特征在于,所述任务调度方法包括所述工作设备中的第二工作设备接收主控设备发送的资源调度指令,所述资源调度指令是所述主控设备在所述第二工作设备的处理进度低于预设的进度阈值时发送,并且所述资源调度指令用于所述主控设备将未完成的计算任务中的一部分分配至所述第一工作设备,以使得所述第一工作设备辅助第二工作设备完成计算任务。
6.根据权利要求5所述的应用于图算法的MapReduce系统中的任务调度方法,其特征在于,在所述第二工作设备接收主控设备发送的资源调度指令之前,还包括所述第一工作设备分别查看被分配至所述第一工作设备上的各顶点对应的计算任务是否已经完成;若所述各顶点的计算任务均已经完成,则所述第一工作设备向主控设备发送用于表明所述第一工作设备已经完成计算任务的空闲通知消息。
7.根据权利要求5所述的应用于图算法的MapReduce系统中的任务调度方法,其特征在于,当所述工作设备中的第四工作设备上的第四顶点需要第三顶点辅助计算,并且所述第三顶点与第四顶点不在同一个Map任务上时,则所述第四工作设备向主控设备发送用于请求加载所述第三顶点的顶点加载申请;所述第四工作设备接收所述主控设备分配的第三顶点并加载,所述主控设备所维护的顶点状态表中的第三顶点的状态为完成标识。
8.根据权利要求7所述的应用于图算法的MapReduce系统中的任务调度方法,其特征在于,所述第四工作设备接收所述主控设备分配的第三顶点并加载之前,还包括所述工作设备中的第三工作设备检测发现位于其上的第三顶点已经完成计算任务,所述第三顶点对应的状态标识为完成标识;所述第三工作设备向主控设备发送顶点状态通知消息,所述顶点状态通知消息用于表明所述第三顶点对应的计算任务已经完成,以使得所述主控设备根据所述顶点状态通知消息,将所维护的顶点状态表中的所述第三顶点的状态设置为完成标识。
9.一种应用于图算法的Map Reduce系统中的主控设备,其特征在于,包括进度监控单元,用于分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度;状态监控单元,用于接收所述工作设备中的第一工作设备发送的用于表明所述第一工作设备已经完成计算任务的空闲通知消息;资源调度单元,用于在所述进度监控单元监控得知工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令,根据所述资源调度指令将所述第二工作设备将未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务。
10.根据权利要求9所述的应用于图算法的MapReduce系统中的主控设备,其特征在于,所述状态监控单元,还用于接收所述工作设备中的第三工作设备发送的顶点状态通知消息,所述顶点状态通知消息用于表明所述第三工作设备中的第三顶点对应的计算任务已经完成;相应的,还包括状态维护单元,用于根据所述顶点状态通知消息,将本地所维护的顶点状态表中的所述第三顶点的状态设置为完成标识;辅助处理单元,用于接收第四工作设备发送的用于请求加载所述第三顶点的顶点加载申请,并根据所述顶点加载申请,当所述第三顶点的状态设置为完成标识时,将所述第三顶点分配至所述第四工作设备。
11.根据权利要求9或10所述的应用于图算法的MapReduce系统中的主控设备,其特征在于,还包括顶点分配单元,用于为所述图算法中的各个顶点分别分配顶点标识,所述顶点标识为自然数;并根据每一顶点的顶点标识和Map任务的总数进行取模运算,根据取模结果分别将每一顶点分配至对应的Map任务;分配记录单元,用于记录所述图算法中的每个顶点首次被分配的工作设备;以使得当接收到工作设备的顶点加载请求时,所述主控设备检测所述工作设备是否为所述顶点的首次被分配的工作设备;若否,则在所述顶点在所述首次被分配的工作设备计算完成后再加载到所述工作设备。
12.—种应用于图算法的Map Reduce系统中的工作设备,其特征在于,包括调度接收单元,用于接收主控设备发送的资源调度指令,所述资源调度指令是所述主控设备在所述第二工作设备的处理进度低于预设的进度阈值时发送,并且所述资源调度指令用于所述主控设备将未完成的计算任务中的一部分分配至所述第一工作设备,以使得所述第一工作设备辅助本地完成计算任务。
13.根据权利要求12所述的应用于图算法的MapReduce系统中的工作设备,其特征在于,还包括状态监控单元,用于分别查看被分配至本地的各顶点对应的计算任务是否已经完成;状态上报单元,用于若所述各顶点的计算任务均已经完成,则向主控设备发送用于表明本地已经完成计算任务的空闲通知消息;或者,所述状态监控单元,还用于在检测发现本地的第三顶点已经完成计算任务,所述第三顶点对应的状态标识为完成标识;所述状态上报单元,还用于向主控设备发送顶点状态通知消息,所述顶点状态通知消息用于表明所述第三顶点对应的计算任务已经完成,以使得所述主控设备根据所述顶点状态通知消息,将所维护的顶点状态表中的所述第三顶点的状态设置为完成标识。
14.根据权利要求12所述的应用于图算法的MapReduce系统中的工作设备,其特征在于,还包括辅助申请单元,用于本地的第四顶点需要第三顶点辅助计算,并且所述第三顶点与第四顶点不在同一个Map任务上时,则向主控设备发送用于请求加载所述第三顶点的顶点加载申请;辅助加载单元,用于接收所述主控设备分配的第三顶点并加载,所述主控设备所维护的顶点状态表中的第三顶点的状态为完成标识。
15.一种应用于图算法的Map Reduce系统中的任务调度系统,其特征在于,包括主控设备、第一工作设备和第二工作设备;所述主控设备,用于分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度;以及用于在所述工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令;并根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务;所述第一工作设备,用于向所述主控设备发送用于表明所述第一工作设备已经完成计算任务的空闲通知消息。
全文摘要
本发明提供一种应用于图算法的Map Reduce系统中的任务调度方法、装置和系统,其中方法包括所述主控设备分别获取所述Map Reduce系统中的各工作设备上的计算任务处理进度,并接收所述工作设备中的第一工作设备发送的用于表明所述第一工作设备已经完成计算任务的空闲通知消息;所述主控设备在所述工作设备中的第二工作设备的处理进度低于预设的进度阈值时,向所述第二工作设备发送资源调度指令,根据所述资源调度指令将所述第二工作设备中未完成的计算任务中的一部分分配至所述第一工作设备,使得所述第一工作设备辅助第二工作设备完成计算任务。本发明提高了MapReduce系统处理图算法时的系统整体效率。
文档编号G06F9/50GK102521051SQ201110400099
公开日2012年6月27日 申请日期2011年12月5日 优先权日2011年12月5日
发明者刘露, 卢浩洋, 张云勇, 李卫, 程莹 申请人:中国联合网络通信集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1