CN103034475A - 分布式并行计算方法、装置及系统 - Google Patents
分布式并行计算方法、装置及系统 Download PDFInfo
- Publication number
- CN103034475A CN103034475A CN2011102995970A CN201110299597A CN103034475A CN 103034475 A CN103034475 A CN 103034475A CN 2011102995970 A CN2011102995970 A CN 2011102995970A CN 201110299597 A CN201110299597 A CN 201110299597A CN 103034475 A CN103034475 A CN 103034475A
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- container
- actuating station
- processor
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种分布式并行计算方法、装置及系统,包括:接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息;接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识;根据所述步骤处理结果,生成所述待处理任务的任务处理结果。本发明提供的分布式并行计算方法、装置及系统,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
Description
技术领域
本发明涉及分布式计算领域,特别涉及一种分布式并行计算方法、装置及系统。
背景技术
随着信息量的爆炸式增长,以及任务的复杂性不断的提高,对于复杂的任务处理已经不能单单靠提高服务器性能得以解决。通常情况下,一个复杂的任务会包括多个执行步骤,在任务处理时应用多种计算资源,例如中央处理器(CPU)、内存、网络输入/输出系统和硬盘输入/输出系统等,为了解决服务器处理能力有限的问题,目前一般采用的并行计算技术是将待处理任务静态地或者动态地分配到任务处理器中去处理。如果有多个复杂的任务,通常做法是为这些任务分配多个进程或者线程来处理,我们把处理整个任务的进程或者线程定义为任务处理器(Task Processor)。
图1为现有技术中多个任务处理器并行处理多个待处理任务的示意图。如图1所示,任务处理器集合(Task Processor Group)中包括多个任务处理器,其中,每个任务处理器集合中包括的任务处理器的个数可以是固定的,也可以是可变的,通过调整任务处理器集合中包括的任务处理器的个数来控制待处理任务的执行速度。如图1所示,每一个任务处理器处理一个固定的待处理任务,多个任务处理器可以并行地处理多个待处理任务,当一个任务处理器在处理一个具体的待处理任务时,对于所述待处理任务中包括的所有执行步骤,任务处理器则按照预先定义好的执行顺序,串行地处理所述待处理任务中的每个执行步骤。在这种处理方式中,当任务处理器集合中的任务处理器的个数发生变化时,会涉及到待处理任务中所有的执行步骤的资源使用情况,从而导致系统资源的浪费,同时也缩小了资源可调整的空间。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
现有的并行计算技术是将待处理任务静态地或者动态地分配到任务处理器中去处理,任务处理效率较低,而且计算资源不能得到合理分配。
发明内容
有鉴于此,本发明的主要目的在于提供两种分布式并行计算方法,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
本发明的另一目的在于提供两种并行计算装置,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
本发明的又一目的在于提供一种并行计算系统,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
为达到上述目的,本发明的技术方案是这样实现的:
一种分布式并行计算方法,该方法包括:
接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;
如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识;
根据所述步骤处理结果,生成所述待处理任务的任务处理结果。
一种分布式并行计算方法,包括:
向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括步骤处理类型;
接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果;
将所述步骤处理结果发送给所述执行端任务容器。
一种执行端任务容器,包括:
第一接收单元,用于接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,所述第一接收单元在接收到所述步骤请求消息之后,将所述步骤请求消息发送给判断单元;
所述判断单元,用于判断所述步骤处理类型对应的执行步骤是否依赖于所述待处理任务中的已处理执行步骤,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,则向第一发送单元发送一个发送指令;
所述第一发送单元,用于在接收到所述发送指令之后,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
所述第一接收单元,还用于接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果包括所述待处理执行步骤的唯一标识,所述第一接收单元在接收到所述步骤处理结果之后,将所述步骤处理结果发送给任务处理结果生成单元;
所述任务处理结果生成单元,用于根据所述步骤处理结果,生成所述待处理任务的任务处理结果。
一种步骤处理器,包括:
第二发送单元,用于向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;
第二接收单元,用于接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识,所述第二接收单元在接收到所述步骤响应消息之后,将所述步骤响应消息发送给处理单元;
所述处理单元,用于在接收到所述第二接收单元发送的步骤响应消息之后,处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果,并将所述步骤处理结果发送给所述第二发送单元;
所述第二发送单元,还用于在接收到所述处理单元发送的步骤处理结果之后,将所述步骤处理结果发送给所述执行端任务容器。
一种分布式并行计算系统,包括执行端任务容器和步骤处理器,其中,
所述执行端任务容器,用于接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识,接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识,根据所述步骤处理结果,生成所述待处理任务的任务处理结果;
所述步骤处理器,用于向所述执行端任务容器发送步骤请求消息,接收所述执行端任务容器回复的步骤响应消息,处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果,将所述步骤处理结果发送给所述执行端任务容器。
本发明提出的分布式并行计算方法、装置及系统,执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种执行端任务容器等待步骤处理器主动上报步骤请求消息的分布式并行计算方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法、装置及系统,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
附图说明
图1为现有技术中多个任务处理器并行处理多个待处理任务的示意图。
图2为本发明待处理执行步骤A、B、C之间的依赖关系示意图。
图3(a)为现有技术中任务间并行处理多任务的示意图。
图3(b)为本发明任务步骤间并行处理多任务的示意图。
图4为本发明分布式并行计算方法第一实施例的实现流程图。
图5为本发明分布式并行计算方法第二实施例的实现流程图。
图6为本发明服务端任务容器、执行端任务容器和步骤处理器的连接关系示意图。
图7为本发明分布式爬虫任务中执行步骤之间的依赖关系示意图。
图8为本发明分布式爬虫任务的并行计算系统应用部署示意图。
图9为本发明分布式并行计算方法第三实施例的实现流程图。
图10为本发明分布式并行计算方法第四实施例的实现流程图。
图11为本发明执行端任务容器的结构示意图。
图12为本发明步骤处理器的结构示意图。
图13为本发明分布式并行计算系统的结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明中提出一种改进后的分布式并行计算方法、装置及系统,执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种执行端任务容器等待步骤处理器主动上报步骤请求消息的分布式并行计算方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法、装置及系统,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
为使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
通常情况下,一个复杂的任务包括多个执行步骤,在任务处理时应用多种计算资源,例如中央处理器(CPU)、内存、网络输入/输出系统和硬盘输入/输出系统等。为了实现本发明的发明目的,首先,需要将一个待处理任务分解为两个以上具有依赖关系的待处理执行步骤。具体地,假设将一个待处理任务分解为N个待处理执行步骤,它们分别是S1,S2,...,Sn,定义Sn->Sm,表示在执行完步骤Sn之后执行步骤Sm,其中,“->”表示执行顺序;定义Sn<-Sm,表示步骤Sm依赖于步骤Sn,其中,“<-”表示依赖关系。假设该任务的执行顺序是S1->S2->...->Sn,则该任务的依赖关系为S1<-S2...<-Sn-1<-Sn。
例如,图2为本发明待处理执行步骤A、B、C之间的依赖关系示意图。如图2所示,假设某个待处理任务分解为3个具有依赖关系的执行步骤,它们分别为A,B,C,且它们之间的依赖关系如图4所示,执行步骤B依赖于执行步骤A,表示为A<-B;并且,执行步骤C也依赖于执行步骤A,表示为A<-C。如果只允许该任务中包括的所有执行步骤按照串行方式进行处理,则该任务有如下两种执行顺序,即A->B->C,或者A->C->B;如果允许该任务中包括的所有执行步骤可以按照并行方式进行处理,则它们执行顺序可以为A>B,C,即可以先处理执行步骤A,再同时处理执行步骤B和C。也就是说,在具体处理某个待处理任务时,该任务中包括的执行步骤之间的依赖关系是确定的,而对于该任务中执行步骤的处理顺序,则是可以按照所述执行步骤之间的依赖关系和已经处理的执行步骤动态变化的。如果对于一个待处理任务中执行步骤的处理顺序也是确定的,则我们认为这个待处理任务对执行步骤的处理顺序有着比较严格的处理要求,但是更多的时候,待处理任务对执行步骤的处理顺序并没有严格的处理要求,通常某个待处理任务所选择的处理顺序,只是多个处理顺序中的一种,或者是按照预先设定的某一种处理顺序进行处理,而且,在现有的实现方式中,该任务所选择的处理顺序并没有考虑在处理速度上是否可以达到最快。
图3(a)为现有技术中任务间并行处理多任务的示意图。如图3(a)所示,当执行上述具有A、B、C三个步骤的任务时,假设任务处理器处理执行步骤A使用的计算资源为1兆,处理执行步骤A使用的时间为1秒,表示为A(1,1);假设任务处理器处理执行步骤B使用的计算资源为1兆,处理执行步骤B使用的时间为0.5秒,表示为B(1,0.5);同样地,假设任务处理器处理执行步骤C使用的计算资源为1兆,处理执行步骤C使用的时间为0.5秒,表示为C(1,0.5)。因为一个任务处理器处理1个任务需要使用的计算资源为3M,处理一个任务需要使用的时间为2秒,表示为(3,2),因此,在现有的任务间并行处理多任务的方法中,为了做到每秒钟处理10个任务,系统则需要20个任务处理器来完成,系统需要使用的计算资源为20×3=60兆。如果系统中总的计算资源为120兆,按照现有的任务间并行处理多任务的方法,每秒钟最多可以处理20个任务,任务处理效率较低。
图3(b)为本发明任务步骤间并行处理多任务的示意图。如图3(b)所示,步骤A、B、C之间是互相独立的,为了做到每秒钟处理10个任务,系统需要10个步骤处理器并行地处理步骤A,5个步骤处理器并行地处理步骤B,5个步骤处理器并行地处理步骤C,因为步骤处理器处理步骤A、B、C使用的计算资源分别为1M,所以,所述20个步骤处理器处理10个任务需要使用的计算资源为20M。如果系统中总的计算资源为120兆,按照本发明提出任务步骤间并行处理多任务的方法,每秒钟最多可以处理60个任务,任务处理效率较高。
图4为本发明分布式并行计算方法第一实施例的实现流程图。如图4所示,包括以下步骤:
步骤401:执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型。
本发明实施例定义处理每个执行步骤的线程或进程为步骤处理器,每个步骤处理器拥有自身的步骤处理类型,所述步骤处理类型表示步骤处理器能够处理的执行步骤的类型,并且,每个执行步骤拥有自己独立的步骤处理器,步骤处理器之间互相独立,亦即它们的资源使用以及处理能力是互不相关的。
步骤402:执行端任务容器向步骤处理器发送步骤响应消息。
如果所述步骤处理类型对应的执行步骤依赖于待处理任务中的已处理执行步骤,则说明所述步骤处理类型对应的执行步骤是执行端任务容器中下一个要处理的步骤,执行端任务容器向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
如果步骤处理类型对应的执行步骤不依赖于待处理任务中的已处理执行步骤,则说明所述步骤处理类型对应的执行步骤不是执行端任务容器中下一个要处理的步骤,执行端任务容器不向步骤处理器发送步骤响应消息。
步骤403:执行端任务容器接收步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识。
步骤404:执行端任务容器根据所述步骤处理结果,生成待处理任务的任务处理结果。
本发明提供的分布式并行计算方法,执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种执行端任务容器等待步骤处理器主动上报步骤请求消息的分布式并行计算方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
图5为本发明分布式并行计算方法第二实施例的实现流程图。如图5所示,包括以下步骤:
步骤501:执行端任务容器向服务端任务容器发送任务请求消息,所述任务请求消息用于请求服务端任务容器中的待处理任务。
执行端任务容器向服务端任务容器发送任务请求消息之前,首先向服务端任务容器发送注册请求消息,然后,执行端任务容器接收服务端任务容器发送的注册响应消息,完成执行端任务容器在指定的服务端任务容器上的注册。
优选地,执行端任务容器在向服务端任务容器发送任务请求消息之前,还需要检查自身包括的待处理任务的任务数量,如果待处理任务的任务数量少于预设阈值,执行端任务容器向服务端任务容器发送任务请求消息;如果待处理任务的任务数量大于或等于预设阈值,执行端任务容器则不会向服务端任务容器发送任务请求消息。
步骤502:执行端任务容器接收服务端任务容器回复的任务响应消息,所述任务响应消息中包括所述待处理任务,其中,所述待处理任务中包括两个以上预先分解的具有依赖关系的待处理执行步骤。
步骤503:执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型。
步骤504:执行端任务容器向步骤处理器发送步骤响应消息。
优选地,执行端任务容器在向步骤处理器发送步骤响应消息之后,将所述待处理执行步骤标记为正在处理执行步骤。
步骤505:执行端任务容器接收步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识。
优选地,执行端任务容器在接收到所述步骤处理结果之后,将所述正在处理步骤处理标记为已处理执行步骤。
步骤506:执行端任务容器根据所述步骤处理结果,生成所述待处理任务的任务处理结果。
优选地,在执行端任务容器将任务处理结果发送给服务端任务容器之后,将所述任务处理结果在执行端任务容器中删除掉。
图6为本发明服务端任务容器、执行端任务容器和步骤处理器的连接关系示意图。如图6所示,服务端任务容器、执行端任务容器和步骤处理器在物理部署上采用三层结构,服务端任务容器(Server Task Pool)负责管理已处理任务和待处理任务,其中,已处理的任务包括处理成功的任务和处理失败的任务。对于待处理任务,可以通过执行端任务容器将所述待处理任务添加到服务端任务容器中,也可以通过其他外部装置将所述待处理任务添加到服务端任务容器中。通常情况下,服务端任务容器会一直处于运行状态,直到所有待处理的任务被处理完毕,或者收到预先设置的结束命令。
优选地,还可以在服务端任务容器中设置一个服务容器控制器(Server PoolController),当待处理任务的处理速度受到外界因素影响时,服务容器控制器可以根据外界因素控制所述待处理任务的处理速度。例如,在处理分布式爬虫任务中,如果爬虫的爬行速度过快则会被网页服务器封锁,这时需要服务容器控制器降低所述分布式爬虫任务被处理的速度。
如图6所示,执行端任务容器(Exec Task Pool)负责管理正在处理的任务和待处理任务,执行端任务容器接收两个以上步骤处理器(Step Processor)发送的步骤请求消息,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识,接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识,根据所述待处理执行步骤的所述步骤处理结果,生成所述待处理任务的任务处理结果,并将所述任务处理结果发送给服务端任务容器。通常情况下,执行端任务容器会一直处于运行状态,直到收到服务端任务容器发送的结束命令,或者收到预先设置的结束命令。
对于服务端任务容器和执行端任务容器,服务端任务容器并不能主动感知执行端任务容器的存在,执行端任务容器主动向服务端任务容器发送注册请求消息,完成执行端任务容器在指定服务端任务容器上的注册。在此之后,执行端任务容器向服务端任务容器发送任务请求消息,所述任务请求消息用于请求待处理任务,在接收到步骤处理器发送的所述待处理执行步骤的步骤处理结果后,根据所述待处理执行步骤的所述步骤处理结果,生成所述待处理任务的任务处理结果,并将所述任务处理结果发送给服务端任务容器。如果存在多个执行端任务容器时,所述多个执行端任务容器可以注册到同一个服务端任务容器上,但是对于一个执行端任务容器,只能注册到一个服务端任务容器上,这样能够保证在多个执行端任务容器上处理的任务是唯一的。此外,根据具体的物理部署要求,服务端任务容器和执行端任务容器可以部署在一个任务处理集群的相同的机器上,也可以部署在一个任务处理集群的不同的机器上,增加了物理部署的灵活性。
同样地,对于执行端任务容器和步骤处理器,执行端任务容器并不能主动感知步骤处理器的存在,步骤处理器主动向执行端任务容器发送注册请求消息,完成步骤处理器在执行端任务容器上的注册,在此之后,步骤处理器向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,步骤处理器接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括待处理执行步骤和所述待处理执行步骤的唯一标识,步骤处理器处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果,并将所述步骤处理结果发送给所述执行端任务容器。需要说明的是,执行端任务容器和步骤处理器可以在同一台机器上运行,甚至还可以在同一个进程内运行,也可以在不同的机器上分别运行。还需要说明的是,一个执行端任务容器必须管理一个待处理任务中所有执行步骤的步骤处理器,否则所述待处理任务不会被处理。还需要说明的是,一个步骤处理器只能注册到一个执行端任务容器中,而一个执行端任务容器则可以对应多个步骤处理器。
如图6所示,对于服务端任务容器、执行端任务容器和步骤处理器在物理部署上采用三层部署结构,所述三层部署结构可以设置在同一个任务处理集群的不同机器中,也可以设置在同一个任务处理集群的相同机器中,还可以设置在同一台机器的同一进程中,这样能够增加服务端任务容器、执行端任务容器和步骤处理器在物理部署上的灵活性,也能够保证计算资源得到充分利用。另外,在具体部署的时候还可能根据任务处理集群中每台服务器所在的网络、输入/输出系统、中央处理器及内存的优劣情况采用其他的部署方式。
本发明提供的分布式并行计算方法,执行端任务容器向服务端任务容器发送任务请求消息,主动向服务端任务容器请求待处理任务,执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,执行端任务容器向步骤处理器发送步骤响应消息,所述步骤响应消息中包括待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种执行端任务容器等待步骤处理器主动上报步骤请求消息的分布式并行计算方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
下面以分布式爬虫任务为例,详细阐述本发明实施例提供的分布式并行计算方法,图7为本发明分布式爬虫任务中执行步骤之间的依赖关系示意图。如图7所示,预先将分布式爬虫任务分解为如下4个待处理执行步骤:
(1)S1:检查分布式爬虫任务的合法性。
具体地,执行端任务容器接收到4个步骤处理器发送的4个步骤请求消息,所述步骤请求消息中包括每个步骤处理器的步骤处理类型,假设第一个步骤处理器的步骤处理类型表示第一个步骤处理器能够处理执行步骤S1,第二个步骤处理器的步骤处理类型表示第二个步骤处理器能够处理执行步骤S2,第三个步骤处理器的步骤处理类型表示第三个步骤处理器能够处理执行步骤S3,第四个步骤处理器的步骤处理类型表示第四个步骤处理器能够处理执行步骤S4。执行端任务容器在接收到4个步骤处理器发送的4个步骤请求消息之后,根据执行步骤S1、S2、S3和S4之间的依赖关系,执行端任务容器向第一个步骤处理器发送步骤响应消息,所述步骤响应消息中包括执行步骤S1以及执行步骤S1的唯一标识,并且,在向第一个步骤处理器发送步骤响应消息之后,将待处理执行步骤S1标记为正在处理执行步骤S1。
具体地,第一个步骤处理器检查分布式爬虫任务中待爬取网页的URL及其核心属性是否合法,比如,第一个步骤处理器检查分布式爬虫任务中的爬虫在所述待爬取网页中的爬取深度是否合法,如果所述待爬取网页的URL及其核心属性不合法,则结束处理执行步骤S1;如果所述待爬取网页的URL及其核心属性合法,在处理完执行步骤S1之后,向执行端任务容器发送执行步骤S1的步骤处理结果,所述步骤处理结果包括执行步骤S1的唯一标识。
执行端任务容器在接收到第一个步骤处理器发送的执行步骤S1的步骤处理结果之后,根据执行步骤S1的唯一标识,将正在处理执行步骤S1标记为已处理执行步骤S1。
优选地,可以在执行端任务容器中预设一个步骤处理时段,从执行端任务容器向第一个步骤处理器发送步骤响应消息之后,开始记录第一个步骤处理器处理执行步骤S1的处理时间,如果执行端任务容器在所述步骤处理时段内没有收到第一个步骤处理器发送的执行步骤S1的步骤处理结果,执行端任务容器则认为第一个步骤处理器处理执行步骤S1失败,如果在此之后执行端任务容器收到其他步骤处理器发送的步骤请求消息,所述步骤请求消息中包括的步骤处理类型表示能够处理执行步骤S1,那么,执行端任务容器则会向其他步骤处理器发送步骤响应消息,所述步骤响应消息中包括执行步骤S1和执行步骤S1的唯一标识。
(2)S2:向待爬取网页的网页服务器发起Http连接请求。
执行端任务容器在接收到第一个步骤处理器发送的执行步骤S1的步骤处理结果之后,根据执行步骤S1、S2、S 3和S4之间的依赖关系,判断下一个待处理执行步骤为S2,则执行端任务容器向第二个步骤处理器发送步骤响应消息,所述步骤响应消息中包括执行步骤S2以及执行步骤S2的唯一标识,并且,将待处理执行步骤S2标记为正在处理执行步骤S2。
具体地,第二个步骤处理器向待爬取网页的网页服务器发起Ht tp连接请求,如果第二个步骤处理器能够与所述网页服务器建立连接成功,第二个步骤处理器向执行端任务容器发送执行步骤S2的步骤处理结果,所述步骤处理结果包括执行步骤S2的唯一标识。
执行端任务容器在接收到第二个步骤处理器发送的执行步骤S2的步骤处理结果之后,将正在处理执行步骤S2标记为已处理执行步骤S2。
如果第二个步骤处理器在向待爬取网页的网页服务器发起Ht tp连接请求后,第二个步骤处理器与所述网页服务器建立连接失败,执行端任务容器在所述步骤处理时段内没有收到第二个步骤处理器发送的执行步骤S2的步骤处理结果,执行端任务容器则认为第二个步骤处理器处理执行步骤S2失败,同样地,如果在此之后执行端任务容器收到其他步骤处理器发送的步骤请求消息,所述步骤请求消息中包括的步骤处理类型表示能够处理执行步骤S2,那么,执行端任务容器则会向其他步骤处理器发送步骤响应消息,所述步骤响应消息中包括执行步骤S2和执行步骤S2的唯一标识。
(3)S 3:解析待爬取网页的网页内容。
执行端任务容器在接收到第二个步骤处理器发送的执行步骤S2的步骤处理结果之后,根据执行步骤S1、S2、S 3和S4之间的依赖关系,判断下一个待处理执行步骤为S3或S4,由于执行步骤S3和执行步骤S4可以并行处理,则执行端任务容器同时向第三个步骤处理器和第四个步骤处理器发送步骤响应消息,其中,执行端任务容器向第三个步骤处理器发送的步骤响应消息中包括执行步骤S3以及执行步骤S3的唯一标识;执行端任务容器向第四个步骤处理器发送的步骤响应消息中包括执行步骤S4以及执行步骤S4的唯一标识。执行端任务容器在向第三个步骤处理器发送步骤响应消息之后,将待处理执行步骤S 3标记为正在处理执行步骤S3,同样地,执行端任务容器在向第四个步骤处理器发送步骤响应消息之后,将待处理执行步骤S4标记为正在处理执行步骤S4。
具体地,第三个步骤处理器将待爬取网页进行解析,如果解析成功,第三个步骤处理器向执行端任务容器发送执行步骤S3的步骤处理结果,所述步骤处理结果包括执行步骤S3的唯一标识。
执行端任务容器在接收到第三个步骤处理器发送的执行步骤S 3的步骤处理结果之后,将正在处理执行步骤S3标记为已处理执行步骤S3。
如果第三个步骤处理器解析待爬取网页失败,执行端任务容器在所述步骤处理时段内没有收到第三个步骤处理器发送的执行步骤S3的步骤处理结果,执行端任务容器则认为第三个步骤处理器处理执行步骤S3失败。
(4)S4:存储待爬取网页的网页内容。
并行地,第四个步骤处理器将待爬取网页的网页内容进行存储,如果网页内容存储成功,第四个步骤处理器向执行端任务容器发送执行步骤S4的步骤处理结果,所述步骤处理结果包括执行步骤S4的唯一标识。
执行任务容器在接收到第四个步骤处理器发送的执行步骤S4的步骤处理结果之后,将正在处理执行步骤S4标记为已处理执行步骤S4。
如果第四个步骤处理器对待爬取网页的网页内容存储失败,执行端任务容器在所述步骤处理时段内没有收到第四个步骤处理器发送的执行步骤S4的步骤处理结果,执行端任务容器则认为第四个步骤处理器处理执行步骤S4失败。
图8为本发明分布式爬虫任务的并行计算系统应用部署示意图。如图8所示,在分布式爬虫任务的并行计算系统中,使用一台服务器作为分布式爬虫任务的并行计算系统的服务端任务容器;使用一台服务器作为分布式爬虫任务的并行计算系统的执行端任务容器;使用一台服务器作为执行步骤S1和执行步骤S2的步骤处理器,由于执行步骤S1和执行步骤S2在输入/输出、CPU和存储方面没有较高的要求,因此只要使用一台服务器即可满足要求;使用一台服务器作为执行步骤S3的步骤处理器;另外,由于执行步骤S4在输入/输出方面有较高的要求,因此使用两台服务器作为执行步骤S4的步骤处理器。
图9为本发明分布式并行计算方法第三实施例的实现流程图。如图9所示,包括以下步骤:
步骤901:步骤处理器向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型。
对于每个步骤处理器,只要执行端任务容器中的待处理任务中有适合所述步骤处理器处理的执行步骤,步骤处理器就一直处于运行状态,当步骤处理器将执行步骤的步骤处理结果发送给执行端任务容器之后,则向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理执行步骤;如果在执行端任务容器中的待处理任务中没有包括适合所述步骤处理器处理的执行步骤,则步骤处理器空闲指定的时间,在空闲指定的时间之后,重新向执行端任务容器发送步骤请求消息。
步骤902:步骤处理器接收执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。
步骤903:步骤处理器处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果。
在必要的情况下,步骤处理器会向执行端任务容器发送异常处理结果,例如,当步骤处理器在处理某个执行步骤的过程中遇到一个特殊的条件,步骤处理器则会向执行端任务容器发送中断请求消息,所述中断请求消息用于请求中断处理所述执行步骤;或者,步骤处理器在处理某个执行步骤的过程中遇到了另一个特殊的条件,则步骤处理器向执行端任务容器发送跳转请求消息,所述跳转请求消息用于请求跳转到指定的执行步骤。
步骤904:步骤处理器将步骤处理结果发送给执行端任务容器。
本发明提供的分布式并行计算方法,步骤处理器向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,步骤处理器接收执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种步骤处理器主动向执行端任务容器发送步骤请求消息的方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
图10为本发明分布式并行计算方法第四实施例的实现流程图。如图10所示,包括以下步骤:
步骤1001:步骤处理器向执行端任务容器发送注册请求消息,并接收执行端任务容器发送的注册响应消息。
步骤1002:步骤处理器向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型。
步骤1003:步骤处理器接收执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。
步骤1004:步骤处理器处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果。
步骤1005:步骤处理器将所述步骤处理结果发送给所述执行端任务容器。
优选地,步骤处理器在接收到执行端任务容器回复的步骤响应消息之后,记录接收到所述步骤响应消息的时间,同样地,步骤处理器在将步骤处理结果发送给执行端任务容器之后,记录将步骤处理结果发送给执行端任务容器的时间,根据所述接收到所述步骤响应消息的时间和所述将所述步骤处理结果发送给所述执行端任务容器的时间,计算所述将所述步骤处理结果发送给所述执行端任务容器的时间与所述接收到所述步骤响应消息的时间的的时间差值,得到所述待处理执行步骤的处理时间。
优选地,根据所述待处理执行步骤的处理时间,按照预定的调整策略调整在处理所述待处理执行步骤时使用的计算资源。
例如,如果所述待处理执行步骤的处理时间大于或等于预设时间阈值,步骤处理器则会向分布式并行计算系统发送资源请求消息,所述资源请求消息用于向分布式并行计算系统请求预定单位的计算资源;相反,如果所述待处理执行步骤的处理时间小于预设时间阈值,步骤处理器则会释放预定单位的计算资源,能够使得分布式并行计算系统中的计算资源得到合理分配。
本发明提供的分布式并行计算方法,步骤处理器向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,步骤处理器接收执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种步骤处理器主动向执行端任务容器发送步骤请求消息的方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
图11为本发明执行端任务容器的结构示意图。如图11所示,所述执行端任务容器包括:
第一接收单元1101,用于接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,所述第一接收单元1101在接收到所述步骤请求消息之后,将所述步骤请求消息发送给判断单元1102;
所述判断单元1102,用于判断所述步骤处理类型对应的执行步骤是否依赖于所述待处理任务中的已处理执行步骤,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,则向第一发送单元1103发送一个发送指令;
所述第一发送单元1103,用于在接收到所述发送指令之后,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
所述第一接收单元1101,还用于接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果包括所述待处理执行步骤的唯一标识,所述第一接收单元在接收到所述步骤处理结果之后,将所述步骤处理结果发送给任务处理结果生成单元1104;所述任务处理结果生成单元1104,用于根据所述步骤处理结果,生成所述待处理任务的任务处理结果。
进一步的,所述第一发送单元1103,还用于向服务端任务容器发送任务请求消息,所述任务请求消息用于请求所述待处理任务;
所述第一接收单元1101,还用于接收所述服务端任务容器回复的任务响应消息,所述任务响应消息中包括所述待处理任务,其中,所述待处理任务中包括两个以上预先分解具有依赖关系的所述待处理执行步骤。
进一步的,所述任务处理结果生成单元1104,还用于将所述任务处理结果发送给所述第一发送单元1103;
所述第一发送单元1103,还用于将所述任务处理结果发送给所述服务端任务容器。
进一步的,所述执行端任务容器还包括:
所述第一发送单元1103,还用于在向所述步骤处理器发送步骤响应消息之后,向标记单元1105发送第一标记指令;
所述第一接收单元1101,还用于在接收到所述步骤处理结果之后,向所述标记单元1105发送第二标记指令;
所述标记单元1105,用于在接收到所述第一标记指令之后,将所述待处理执行步骤标记为正在处理执行步骤,在接收到所述第二标记指令之后,将所述正在处理步骤处理标记为已处理执行步骤。
进一步的,所述第一发送单元1103,还可用于检查自身包括的所述待处理任务的任务数量,并当所述任务数量少于预设阈值时,向所述服务端任务容器发送所述任务请求消息。所述第一发送单元1103还包括检查子单元11031、判断子单元11032和发送子单元11033,其中,
所述检查子单元11031,用于检查自身包括的所述待处理任务的任务数量,并将所述任务数量发送给判断子单元11032;
所述判断子单元11032,用于判断所述任务数量是否少于预设阈值,如果所述任务数量少于所述预设阈值,则向发送子单元11033发送任务请求控制指令,所述任务请求控制指令用于指示所述发送子单元向所述服务端任务容器发送任务请求消息;
所述发送子单元11033,用于在接收到所述判断子单元发送的所述任务请求控制指令之后,向所述服务端任务容器发送所述任务请求消息。
进一步的,所述第一发送单元11033,还用于向所述服务端任务容器发送注册请求消息;
所述第一接收单元1101,还用于接收所述服务端任务容器回复的注册响应消息。
本发明提供的执行端任务容器,通过第一发送单元向服务端任务容器发送任务请求消息,主动向服务端任务容器请求任务,此外,通过第二接收单元接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种执行端任务容器等待步骤处理器主动上报步骤请求消息的分布式并行计算方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提供的执行端任务容器,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
图12为本发明步骤处理器的结构示意图。如图12所示,所述执行端任务容器包括:
第二发送单元1201,用于向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;
第二接收单元1202,用于接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识,所述第二接收单元在接收到所述步骤响应消息之后,将所述步骤响应消息发送给处理单元1203;
所述处理单元1203,用于在接收到所述第二接收单元发送的步骤响应消息之后,处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果,并将所述步骤处理结果发送给所述第二发送单元1201;
所述第二发送单元1201,还用于在接收到所述处理单元发送的步骤处理结果之后,将所述步骤处理结果发送给所述执行端任务容器。
进一步的,所述步骤处理器还包括:
所述第二接收单元1202,还用于在接收到所述步骤响应消息之后,向计时单元发送第一计时指令;
所述第二发送单元1201,还用于在将所述步骤处理结果发送给所述执行端任务容器之后,向计时单元发送第二计时指令;
计时单元1204,用于根据所述第一计时指令记录接收到所述步骤响应消息的时间,根据所述第二计时指令记录将所述步骤处理结果发送给所述执行端任务容器的时间,根据所述接收到所述步骤响应消息的时间和所述将所述步骤处理结果发送给所述执行端任务容器的时间,计算所述将所述步骤处理结果发送给所述执行端任务容器的时间与所述接收到所述步骤响应消息的时间的的时间差值,得到所述待处理执行步骤的处理时间;将所述处理时间发送给资源调整单元1205。
所述资源调整单元1205,用于根据所述待处理执行步骤的处理时间,按照预定的调整策略调整在处理所述待处理执行步骤时使用的计算资源。
进一步的,所述第二发送单元1201,还用于向所述执行端任务容器发送注册请求消息;
所述第二接收单元1202,还用于接收所述执行端任务容器回复的注册响应消息。
本发明提供的步骤处理器,通过第二发送单元向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,通过第二接收单元接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种步骤处理器主动向执行端任务容器发送步骤请求消息的方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提供的步骤处理器,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
图13为本发明分布式并行计算系统的结构示意图。如图13所示,所述系统包括执行端任务容器和步骤处理器,其中,
所述执行端任务容器,用于接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识;根据所述步骤处理结果,生成所述待处理任务的任务处理结果;
所述步骤处理器,用于向所述执行端任务容器发送步骤请求消息;接收所述执行端任务容器回复的步骤响应消息;处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果;将所述步骤处理结果发送给所述执行端任务容器。
进一步的,所述系统还包括服务端任务容器,用于接收所述执行端任务容器的任务请求消息,所述任务请求消息用于请求待处理任务;向所述执行端任务容器发送任务响应消息,所述任务响应消息中包括所述待处理任务,其中,所述待处理任务中包括两个以上预先分解的具有依赖关系的待处理执行步骤;接收所述执行端任务容器发送的所述待处理任务的任务处理结果。
图11和12所示装置实施例的具体工作流程请参照图4和9所示方法实施例中的相应说明,不再赘述。
本发明提出的分布式并行计算方法、装置及系统,执行端任务容器接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识。本发明没有采用现有的将待处理任务分配到任务处理器中进行处理的方法,而是提出一种执行端任务容器等待步骤处理器主动上报步骤请求消息的分布式并行计算方法,将待处理任务中包括的多个预先分解的具有依赖关系的待处理执行步骤并行地进行处理。和现有技术相比,本发明提出的分布式并行计算方法、装置及系统,能够提高任务处理效率,而且能够使得计算资源得到合理分配。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (22)
1.一种分布式并行计算方法,其特征在于,包括:
接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;
如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识;
根据所述步骤处理结果,生成所述待处理任务的任务处理结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
向服务端任务容器发送任务请求消息,所述任务请求消息用于请求所述待处理任务;
接收所述服务端任务容器回复的任务响应消息,所述任务响应消息中包括所述待处理任务,其中,所述待处理任务中包括两个以上预先分解的具有依赖关系的所述待处理执行步骤。
3.根据权利要求2所述的方法,其特征在于,在所述生成所述待处理任务的任务处理结果之后,还包括:
将所述任务处理结果发送给所述服务端任务容器。
4.根据权利要求3所述的方法,其特征在于,具体包括:
在向所述步骤处理器发送步骤响应消息之后,将所述待处理执行步骤标记为正在处理执行步骤;
在接收到所述步骤处理结果之后,将所述正在处理执行步骤标记为已处理执行步骤。
5.根据权利要求2所述的方法,其特征在于,所述向服务端任务容器发送任务请求消息包括:
检查自身包括的所述待处理任务的任务数量;
如果所述任务数量少于预设阈值,则向所述服务端任务容器发送所述任务请求消息。
6.根据权利要求2所述的方法,其特征在于,在所述向服务端任务容器发送任务请求消息之前,还包括:
向所述服务端任务容器发送注册请求消息;
接收所述服务端任务容器回复的注册响应消息。
7.一种分布式并行计算方法,其特征在于,包括:
向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括步骤处理类型;
接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果;
将所述步骤处理结果发送给所述执行端任务容器。
8.根据权利要求7所述的方法,其特征在于,还包括:
记录接收到所述步骤响应消息的时间,并且记录将所述步骤处理结果发送给所述执行端任务容器的时间;
根据所述接收到所述步骤响应消息的时间和所述将所述步骤处理结果发送给所述执行端任务容器的时间,计算所述将所述步骤处理结果发送给所述执行端任务容器的时间与所述接收到所述步骤响应消息的时间的的时间差值,得到所述待处理执行步骤的处理时间。
9.根据权利要求8所述的方法,其特征在于,所述处理所述待处理执行步骤,还包括:根据所述待处理执行步骤的处理时间,按照预定的调整策略调整在处理所述待处理执行步骤时使用的计算资源。
10.根据权利要求7所述的方法,其特征在于,在向执行端任务容器发送步骤请求消息之前,还包括:
向所述执行端任务容器发送注册请求消息;
接收所述执行端任务容器回复的注册响应消息。
11.一种执行端任务容器,其特征在于,包括:
第一接收单元,用于接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,所述第一接收单元在接收到所述步骤请求消息之后,将所述步骤请求消息发送给判断单元;
所述判断单元,用于判断所述步骤处理类型对应的执行步骤是否依赖于所述待处理任务中的已处理执行步骤,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,则向第一发送单元发送一个发送指令;
所述第一发送单元,用于在接收到所述发送指令之后,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识;
所述第一接收单元,还用于接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果包括所述待处理执行步骤的唯一标识,所述第一接收单元在接收到所述步骤处理结果之后,将所述步骤处理结果发送给任务处理结果生成单元;
所述任务处理结果生成单元,用于根据所述步骤处理结果,生成所述待处理任务的任务处理结果。
12.根据权利要求13所述的执行端任务容器,其特征在于,还包括:
所述第一发送单元,还用于向服务端任务容器发送任务请求消息,所述任务请求消息用于请求所述待处理任务;
所述第一接收单元,还用于接收所述服务端任务容器回复的任务响应消息,所述任务响应消息中包括所述待处理任务,其中,所述待处理任务中包括两个以上预先分解具有依赖关系的所述待处理执行步骤。
13.根据权利要求12所述的执行端任务容器,还包括:
所述第一发送单元,还用于将所述任务处理结果发送给所述服务端任务容器。
14.根据权利要求13所述的执行端任务容器,其特征在于,还包括:
所述第一发送单元,还用于在向所述步骤处理器发送步骤响应消息之后,向标记单元发送第一标记指令;
所述标记单元,用于在接收到所述第一标记指令之后,将所述待处理执行步骤标记为正在处理执行步骤;
所述第一接收单元,还用于在接收到所述步骤处理结果之后,向所述标记单元发送第二标记指令;
所述标记单元,还用于在接收到所述第二标记指令之后,将所述正在处理步骤处理标记为已处理执行步骤。
15.根据权利要求12所述的执行端任务容器,其特征在于,所述第一发送单元包括:
检查子单元,用于检查自身包括的所述待处理任务的任务数量,并将所述任务数量发送给判断子单元;
所述判断子单元,用于判断所述任务数量是否少于预设阈值,如果所述任务数量少于所述预设阈值,则向发送子单元发送任务请求控制指令,所述任务请求控制指令用于指示所述发送子单元向所述服务端任务容器发送任务请求消息;
所述发送子单元,用于在接收到所述判断子单元发送的所述任务请求控制指令之后,向所述服务端任务容器发送所述任务请求消息。
16.根据权利要求12所述的执行端任务容器,其特征在于,还包括:
所述第一发送单元,还用于向所述服务端任务容器发送注册请求消息;
所述第一接收单元,还用于接收所述服务端任务容器回复的注册响应消息。
17.一种步骤处理器,其特征在于,包括:
第二发送单元,用于向执行端任务容器发送步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型;
第二接收单元,用于接收所述执行端任务容器回复的步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识,所述第二接收单元在接收到所述步骤响应消息之后,将所述步骤响应消息发送给处理单元;
所述处理单元,用于在接收到所述第二接收单元发送的步骤响应消息之后,处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果,并将所述步骤处理结果发送给所述第二发送单元;
所述第二发送单元,还用于在接收到所述处理单元发送的步骤处理结果之后,将所述步骤处理结果发送给所述执行端任务容器。
18.根据权利要求17所述的步骤处理器,其特征在于,还包括:
所述第二接收单元,还用于在接收到所述步骤响应消息之后,向计时单元发送第一计时指令;
所述第二发送单元,还用于在将所述步骤处理结果发送给所述执行端任务容器之后,向计时单元发送第二计时指令;
计时单元,用于在接收到所述第一计时指令和所述第二计时指令之后,记录接收到所述步骤响应消息的时间,并且记录将所述步骤处理结果发送给所述执行端任务容器的时间,根据所述接收到所述步骤响应消息的时间和所述将所述步骤处理结果发送给所述执行端任务容器的时间,计算所述将所述步骤处理结果发送给所述执行端任务容器的时间与所述接收到所述步骤响应消息的时间的的时间差值,得到所述待处理执行步骤的处理时间,所述计时单元在得到所述待处理执行步骤的处理时间之后,将所述处理时间发送给资源调整单元。
19.根据权利要求18所述的步骤处理器,其特征在于,还包括:
所述资源调整单元,用于根据所述待处理执行步骤的处理时间,按照预定的调整策略调整在处理所述待处理执行步骤时使用的计算资源。
20.根据权利要求17所述的步骤处理器,其特征在于,还包括:
所述第二发送单元,还用于向所述执行端任务容器发送注册请求消息;
所述第二接收单元,还用于接收所述执行端任务容器回复的注册响应消息。
21.一种分布式并行计算系统,其特征在于,包括执行端任务容器和步骤处理器,其中,
所述执行端任务容器,用于接收两个以上步骤处理器发送的步骤请求消息,所述步骤请求消息用于请求待处理任务中的待处理执行步骤,并且,所述步骤请求消息中包括所述步骤处理器的步骤处理类型,如果所述步骤处理类型对应的执行步骤依赖于所述待处理任务中的已处理执行步骤,向所述步骤处理器发送步骤响应消息,所述步骤响应消息中包括所述待处理执行步骤以及所述待处理执行步骤的唯一标识,接收所述步骤处理器发送的所述待处理执行步骤的步骤处理结果,所述步骤处理结果中包括所述待处理执行步骤的唯一标识,根据所述步骤处理结果,生成所述待处理任务的任务处理结果;
所述步骤处理器,用于向所述执行端任务容器发送步骤请求消息,接收所述执行端任务容器回复的步骤响应消息,处理所述待处理执行步骤,得到所述待处理执行步骤的步骤处理结果,将所述步骤处理结果发送给所述执行端任务容器。
22.根据权利要求21所述的分布式并行计算系统,其特征在于,还包括:
服务端任务容器,用于接收所述执行端任务容器的任务请求消息,所述任务请求消息用于请求待处理任务,向所述执行端任务容器发送任务响应消息,所述任务响应消息中包括所述待处理任务,其中,所述待处理任务中包括两个以上预先分解的具有依赖关系的待处理执行步骤,接收所述执行端任务容器发送的所述待处理任务的任务处理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110299597.0A CN103034475B (zh) | 2011-10-08 | 2011-10-08 | 分布式并行计算方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110299597.0A CN103034475B (zh) | 2011-10-08 | 2011-10-08 | 分布式并行计算方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034475A true CN103034475A (zh) | 2013-04-10 |
CN103034475B CN103034475B (zh) | 2015-11-25 |
Family
ID=48021404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110299597.0A Active CN103034475B (zh) | 2011-10-08 | 2011-10-08 | 分布式并行计算方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034475B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102475A (zh) * | 2013-04-11 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 分布式并行任务处理的方法、装置及系统 |
CN106911557A (zh) * | 2017-01-17 | 2017-06-30 | 腾讯科技(深圳)有限公司 | 消息传输方法和装置 |
WO2018045541A1 (zh) * | 2016-09-08 | 2018-03-15 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN107819855A (zh) * | 2017-11-14 | 2018-03-20 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN108241534A (zh) * | 2016-12-27 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 一种任务处理、分配、管理、计算的方法以及装置 |
CN108319495A (zh) * | 2017-01-16 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 任务处理方法及装置 |
CN108574712A (zh) * | 2017-03-13 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 一种容器服务集群的创建方法及装置 |
CN109766184A (zh) * | 2018-12-28 | 2019-05-17 | 北京金山云网络技术有限公司 | 分布式任务处理方法、装置、服务器和系统 |
CN110336859A (zh) * | 2019-06-06 | 2019-10-15 | 广州市玄武无线科技股份有限公司 | 一种多租户环境下的任务调度系统 |
WO2021139174A1 (zh) * | 2020-01-12 | 2021-07-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070773A1 (en) * | 2007-09-10 | 2009-03-12 | Novell, Inc. | Method for efficient thread usage for hierarchically structured tasks |
CN101561767A (zh) * | 2008-04-16 | 2009-10-21 | 上海聚力传媒技术有限公司 | 一种基于操作系统的任务执行方法和装置 |
JP2010039526A (ja) * | 2008-07-31 | 2010-02-18 | Toshiba Corp | コンピュータプログラムおよびマスター計算機 |
CN102023844A (zh) * | 2009-09-18 | 2011-04-20 | 深圳中微电科技有限公司 | 并行处理器及其线程处理方法 |
-
2011
- 2011-10-08 CN CN201110299597.0A patent/CN103034475B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070773A1 (en) * | 2007-09-10 | 2009-03-12 | Novell, Inc. | Method for efficient thread usage for hierarchically structured tasks |
CN101561767A (zh) * | 2008-04-16 | 2009-10-21 | 上海聚力传媒技术有限公司 | 一种基于操作系统的任务执行方法和装置 |
JP2010039526A (ja) * | 2008-07-31 | 2010-02-18 | Toshiba Corp | コンピュータプログラムおよびマスター計算機 |
CN102023844A (zh) * | 2009-09-18 | 2011-04-20 | 深圳中微电科技有限公司 | 并行处理器及其线程处理方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102475B (zh) * | 2013-04-11 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 分布式并行任务处理的方法、装置及系统 |
CN104102475A (zh) * | 2013-04-11 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 分布式并行任务处理的方法、装置及系统 |
CN109416646B (zh) * | 2016-09-08 | 2022-04-05 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
WO2018045541A1 (zh) * | 2016-09-08 | 2018-03-15 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN109416646A (zh) * | 2016-09-08 | 2019-03-01 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
CN108241534A (zh) * | 2016-12-27 | 2018-07-03 | 阿里巴巴集团控股有限公司 | 一种任务处理、分配、管理、计算的方法以及装置 |
CN108319495A (zh) * | 2017-01-16 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 任务处理方法及装置 |
CN106911557A (zh) * | 2017-01-17 | 2017-06-30 | 腾讯科技(深圳)有限公司 | 消息传输方法和装置 |
CN108574712A (zh) * | 2017-03-13 | 2018-09-25 | 阿里巴巴集团控股有限公司 | 一种容器服务集群的创建方法及装置 |
CN108574712B (zh) * | 2017-03-13 | 2021-06-01 | 阿里巴巴集团控股有限公司 | 一种容器服务集群的创建方法及装置 |
CN107819855A (zh) * | 2017-11-14 | 2018-03-20 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN107819855B (zh) * | 2017-11-14 | 2020-07-28 | 成都路行通信息技术有限公司 | 一种消息分发方法及装置 |
CN109766184A (zh) * | 2018-12-28 | 2019-05-17 | 北京金山云网络技术有限公司 | 分布式任务处理方法、装置、服务器和系统 |
CN110336859A (zh) * | 2019-06-06 | 2019-10-15 | 广州市玄武无线科技股份有限公司 | 一种多租户环境下的任务调度系统 |
WO2021139174A1 (zh) * | 2020-01-12 | 2021-07-15 | 苏州浪潮智能科技有限公司 | 一种faas分布式计算方法和装置 |
US11748164B2 (en) | 2020-01-12 | 2023-09-05 | Inspur Suzhou Intelligent Technology Co., Ltd. | FAAS distributed computing method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
CN103034475B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034475B (zh) | 分布式并行计算方法、装置及系统 | |
CN106775977B (zh) | 任务调度方法、装置及系统 | |
Ghorbannia Delavar et al. | HSGA: a hybrid heuristic algorithm for workflow scheduling in cloud systems | |
US20190363988A1 (en) | System and/or method for predictive resource management in file transfer servers | |
CN102147746B (zh) | 动态线程池管理系统及管理方法 | |
CN103207785B (zh) | 数据下载请求的处理方法、装置及系统 | |
JP2006309701A (ja) | 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム | |
US9210219B2 (en) | Systems and methods for consistent hashing using multiple hash rings | |
CN110020043B (zh) | 页面爬取方法、装置、存储介质及处理器 | |
US20080148272A1 (en) | Job allocation program, method and apparatus | |
CN104750690A (zh) | 一种查询处理方法、装置及系统 | |
CN110750343B (zh) | 集群系统定时任务调度控制方法及集群系统 | |
CN105573827A (zh) | 一种多机并行处理方法及装置 | |
CN101179553A (zh) | 用于并行消息的有效保序传递的方法和装置 | |
US11874938B2 (en) | Admittance mechanism | |
CN110704185A (zh) | 集群系统分片定时任务调度方法及集群系统 | |
CN104615486A (zh) | 用于搜索推广平台的多任务调度和执行方法、装置和系统 | |
US9537790B1 (en) | Breadth-first resource allocation system and methods | |
EP2415213B1 (en) | Smart routing | |
Hsieh | Robustness of deadlock avoidance algorithms for sequential processes | |
CN1783121A (zh) | 用于执行设计自动化的方法和系统 | |
US10713096B2 (en) | System and method for handling data skew at run time | |
CN103677983A (zh) | 应用的调度方法及装置 | |
CN110569124A (zh) | 一种任务分配方法和装置 | |
JP2011095869A (ja) | リクエスト情報処理方法および計算機システム |
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 |