CN102763086A - 分布式计算任务处理***和任务处理方法 - Google Patents
分布式计算任务处理***和任务处理方法 Download PDFInfo
- Publication number
- CN102763086A CN102763086A CN2012800001658A CN201280000165A CN102763086A CN 102763086 A CN102763086 A CN 102763086A CN 2012800001658 A CN2012800001658 A CN 2012800001658A CN 201280000165 A CN201280000165 A CN 201280000165A CN 102763086 A CN102763086 A CN 102763086A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduler
- subtask
- formation
- layer scheduler
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种分布式计算任务处理***和任务处理方法。该***包括:第一层调度器,用于接收执行任务的请求,启动或选择任务对应的第二层调度器并向第二层调度器转发所述请求;第二层调度器,用于在接收到第一层调度器转发的请求时,按照任务的逻辑关系将任务分解为多个子任务。本发明实施例采用两层调度架构,第二层调度器对应于任务,第一层调度器启动或选择任务所对应的第二层调度器,从而可以适用于不同的任务,提高了处理效率和调度灵活性。
Description
技术领域
本发明实施例涉及网络通信领域,并且更具体地,涉及分布式计算任务处理***和任务处理方法。
背景技术
目前,随着互联网的发展,对大量信息的快速处理的需求变得很迫切。因此数据的并行处理就变得很重要。分布式计算环境提供了网络环境下不同软、硬件平台资源共享和互操作的有效手段,成为并行处理的常用架构。目前业界熟知的并行处理***采用MapReduce架构。MapReduce是分布式计算软件构架,它可以支持大数据量的分布式处理。这个架构最初起源于函数式程式的map(映射)和reduce(缩减)两个函数。map指的是对原始的文档按照自定义的映射规则进行处理,输出中间结果。reduce按照自定义的缩减规则对中间结果进行合并。
在分布式计算环境中,MapReduce的通用架构包括调度节点和多个工作节点。调度节点负责任务调度和资源管理;负责根据用户配置,将用户提交的任务分解为map、reduce两种子任务,并分配map、reduce子任务到工作节点。工作节点负责运行map、reduce子任务,与调度节点保持通讯。
在这种并行处理架构中,由于一个调度节点负责任务以及资源管理,并且需要严格地先后按照map、reduce两步的顺序进行任务处理。如果存在很多步骤的处理,则需要通过提交很多次任务请求来完成,处理效率较低,调度不够灵活。
发明内容
本发明实施例提供一种任务处理***和任务处理方法,能够解决现有并行处理架构中处理效率的问题。
一方面,提供了一种分布式计算任务处理***,包括:第一层调度器,用于接收执行任务的请求,启动或选择任务对应的第二层调度器并向第二层调度器转发所述请求;第二层调度器,用于在接收到第一层调度器转发的请求时,按照任务的逻辑关系将任务分解为多个子任务。
另一方面,提供了一种分布式计算任务处理方法,该方法包括:第一层调度器在接收到执行任务的请求时,启动或选择任务对应的第二层调度器;第一层调度器向第二层调度器转发该请求;第二层调度器在接收到第一层调度器转发的请求时,按照任务的逻辑关系将任务分解为多个子任务。
本发明实施例采用两层调度架构,第二层调度器对应于任务,第一层调度器启动或选择任务对应的第二层调度器,从而可以适用于不同的任务,提高了处理效率和调度灵活性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的任务处理***的框图。
图2是本发明一个实施例的处理架构的示意图。
图3是本发明一个实施例的任务处理方法的流程图。
图4是本发明一个实施例的任务处理过程的示意流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的分布式计算任务处理***的框图。图1的任务处理***10包括两层调度器,即第一层调度器11和第二层调度器12。
第一层调度器11接收执行任务的请求,启动或选择该任务对应的第二层调度器12并向第二层调度器12转发该请求。
例如,在***中没有合适的第二层调度器时,第一层调度器11可启动该任务对应的第二层调度器12。在***中已经存在合适的第二层调度器时,第一层调度器11可从这些合适的第二层调度器中选择该任务对应的第二层调度器12。
可选地,所述第一层调度器还用于对所述任务进行优先级管理,并按照所述优先级启动或选择所述第二层调度器对所述任务进行处理。
第二层调度器12在接收到第一层调度器11转发的请求时,按照任务的逻辑关系将该任务分解为多个子任务。
本发明实施例采用两层调度架构,第二层调度器对应于任务,第一层调度器启动或选择任务对应的第二层调度器,从而可以适用于不同的任务,提高了处理效率和调度灵活性。
在现有的并行处理架构中,只有一层调度,从而需要严格地先后按照map、reduce两步进行任务处理,而本发明实施例没有此限制。本发明实施例的第一层调度器11可以接受各种形式的任务,任务的形式不必限于现有技术中的严格的map、reduce两步。第二层调度器12对应于任务,这样第一层调度器11可以将不同的任务发送给相应的第二层调度器12进行调度处理。第二层调度器12将任务分解为子任务以对任务进行处理,例如调度各个子任务的执行。这样的调度具有更高的灵活性。
另外,现有技术中需要严格地先后按照map、reduce两步的顺序进行任务处理。如果存在很多步骤的处理,则需要通过提交很多次任务请求来完成,处理效率较低。本发明实施例没有此限制。本发明实施例对任务本身以及执行任务或子任务的方式不作限制。例如,任务中所包含的子任务的数目可以比现有技术的map、reduce这两种更多,如三个或三个以上的子任务;而且不限于map、reduce子任务的形式。另外,子任务不必遵循严格的先后顺序,可以并行地执行、串行地执行、或者部分并行部分串行地执行。这样,即使是很多步骤的处理,也只需要较少次数的任务请求,提高了处理效率。
子任务的数目与具体的任务有关,如转码、人脸识别业务等任务。根据任务的逻辑关系,这些任务可能具有相同或不同的子任务数目。可选地,作为一个实施例,可以在任务的描述文件中携带该任务的逻辑关系。例如,任务处理***10(具体地,例如第二层调度器12)可接收用户上传的描述文件,如XML(Extensible Markup Language,可扩展标记语言)格式的描述文件,该描述文件中携带任务的逻辑关系。
可选地,第二层调度器12在接收到第一层调度器11转发的请求时,获得该任务对应的XML格式的描述文件。根据该XML格式的描述文件中携带的任务的逻辑关系,将该任务分解为多个子任务。
另外,每个子任务还可以进一步分解为更小粒度的子任务。也就是说,本发明实施例的子任务可以是多层子任务,每层子任务的进一步分解的方式均可通过描述文件中携带的逻辑关系确定。举例来说,子任务1可以分解为多个子任务2,子任务2也还可以进一步分解为多个子任务3等等。
可选地,作为一个实施例,任务的逻辑关系可指示多个子任务的执行依赖关系。所谓执行依赖关系,是指各个子任务的执行操作之间是否相互依赖。
举例来说,假设子任务2必须依赖于子任务1的执行结果,则子任务2应该在子任务1执行之后再执行(即子任务1和子任务2需串行地执行)。另一方面,如果子任务2不依赖于子任务1的全部执行结果,则子任务1和子任务2可以并行执行,也可以串行执行。
执行依赖关系的一个非限制性的例子可包括:多个子任务中的两个或更多个子任务按照串行、或并行、或部分并行部分串行顺序执行,而不限于现有技术中的map、reduce这两个步骤。这样,如果某一任务存在很多步骤的处理,则无需像MapReduce架构那样提交很多次任务请求,本发明实施例可能仅需提交一次或少量几次任务请求,从而提高了任务的处理效率。
任务的逻辑关系可以显式地指示子任务间的执行依赖关系,例如显式地表示该任务是由先后串行执行的子任务1-3构成。或者,任务的逻辑关系可以隐式地指示子任务间的执行依赖关系,例如对于某一特定任务,***预先知道该任务是由先后串行执行的子任务1-3构成的。
可选地,作为另一实施例,第二层调度器12还用于为所述多个子任务创建相应的队列以存储所述子任务包含的任务。当在所述队列中存储了所述子任务包含的任务时,第二层调度器12还可以用于为所述子任务申请资源,并指示所申请资源的工作单元管理器启动工作单元,以使得所述工作单元从所述队列获取所述子任务包含的任务以执行任务。可选地,作为另一实施例,第二层调度器12还可以用于指示所述工作单元将执行任务的结果放入另一个队列中或输出所述执行任务的结果。
进一步地,作为另一实施例,第二层调度器12还可以用于获取所述队列和所述工作单元的进度信息,以确定所述任务的执行进度。
总之,本发明实施例对任务的具体形式不作限制。可选地,任务的逻辑关系设置或选择可支持用户自定义,例如通过插件机制接收用户的设置或选择。
本发明实施例的任务处理***10可应用于云计算架构。云计算提出了一种高可靠性、低成本、按需使用、弹性的商业模式。很多***可以通过使用云服务,来达到高可靠性、弹性、低成本的目标。
图2是本发明一个实施例的处理架构的示意图。图2的处理架构20是一种云计算架构,包括图1的任务处理***10。与图1的不同之处在于,图2的任务处理***10可包括多个第二层调度器12。为了简洁,图2中仅仅描绘了两个第二层调度器12,但第二层调度器12的数目不受此例子的限制(可以更多或更少)。每个第二层调度器12对应于一种任务,以适配或支撑不同的计算模型。可选地,多个第二层调度器12也可以对应于一种任务,以实现***调度的高并发性。如果现有的多个第二层调度器12中存在对应于任务的合适的第二层调度器12,则第一层调度器11可以选择该合适的第二层调度器12对任务进行处理;如果现有的多个第二层调度器12中没有对应于任务的合适的第二层调度器12,则第一层调度器11可以启动新的合适的第二层调度器12对任务进行处理。
在处理架构20中,第一层调度器11可以是分布式的,以支持高并发性。第一层调度器11可接收Webservice(网络服务)21发送来的任务请求。Webservice 21负责用户的web(网络)请求的接收和转发,具体实现方式可参照现有技术,因此不再赘述。
可选地,作为一个实施例,当第一层调度器11接收到多个任务请求时,第一层调度器11还可以对任务进行优先级管理(例如进行优先级排序),并按照优先级启动或选择第二层调度器12对任务进行处理。例如,第一层调度器11可优先启动或选择优先级较高的任务所对应的第二层调度器12。
可选地,作为另一实施例,第一层调度器11可实现任务的优先级调整等附加功能。优先级排序或调整的方式可支持用户自定义,例如通过插件机制接收用户的设置。
第一层调度器11在启动或选择了对应于任务的第二层调度器12之后,向该第二层调度器12转发任务请求。第二层调度器12按照任务的逻辑关系,将任务分解为多个子任务,并管理多个子任务的执行。可选地,作为一个实施例,可通过队列(如图2所示的分布式队列22)管理子任务的执行。分布式队列22中可包括多个队列,分别存储相应的子任务包含的任务。
具体地,第二层调度器12可以为多个子任务创建相应的队列以存储子任务所包含的任务。第二层调度器12可根据任务的逻辑关系整理队列的顺序。例如,假设任务由先后串行执行的子任务1-3(子任务1->子任务2->子任务3)构成,第二层调度器12可以建立队列1-3,分别存储子任务1-3所包含的任务,并且确定队列1-3的顺序,即按照队列1->队列2->队列3的顺序先后执行相应子任务中包含的任务。子任务1的任务执行结果放入队列2中,子任务2的任务执行结果放入队列3中,子任务3的任务执行结果输出至合适的位置,例如输出至图2所示的分布式存储设备24或返回给用户。
可选地,作为另一实施例,在分布式队列22中存储了子任务包含的任务时,第二层调度器12还可以为该子任务申请资源,例如从资源管理器25申请资源。资源管理器25负责满足调度器11或12的资源申请、释放。资源管理器25的主要功能包括资源管理、资源匹配、资源自动伸缩。其中资源匹配方法可采用插件机制,支持用户自定义。另外,所谓资源自动伸缩是指用户配置集群规模在一个范围内时,可以根据集群负载情况,来自动扩容集群或者减容集群。资源管理器25的其他实现方式可参照现有技术,因此不再赘述。例如,资源管理器25也可以采用分布式方案,以实现高并发性。
在为子任务建立队列并申请资源之后,第二层调度器12可指示所申请资源的工作单元(worker)管理器26启动工作单元27,以使得工作单元27从队列获取子任务包含的任务并执行该任务。worker管理器26负责worker 27的创建、删除、监控。在云计算架构中的每个节点(物理机或虚拟机)上都有worker管理器26。worker管理器26的其他实现方式可参照现有技术,因此不再赘述。
Worker 27负责从分布式队列22中的相应队列获取用户的子任务所包含的任务,进行预处理,之后再调用用户开发的处理程序,待处理完成后,可按照第二层调度器12所确定的队列的顺序,将执行任务的结果放入另一个队列中或输出执行任务的结果。Worker 27的其他实现方式可参照现有技术,因此不再赘述。
此外,第二层调度器12还可以实现其他调度处理,例如任务异常处理或任务进度统计等。例如,第二层调度器12可获取队列和工作单元(worker)的进度信息(如每个子任务是否完成或已完成多少,每个队列中的子任务是否完成或已完成多少等等),以确定任务的执行进度。这样,能够实现任务进度的实时查询。例如,用户可以到第二层调度器12查询相应任务的执行进度。或者,第二层调度器12可以将任务的进度信息上报给第一层调度器11,以便用户到第一层调度器11查询相应任务的执行进度,方便用户的监控。
为了简洁,图2中例示了三个worker管理器26和相应的三个worker 27,但是本发明实施例不限于该具体例子,worker管理器26和worker 27的数目可以更多或更少。
集群管理软件28负责处理并行任务的集群的自动化部署与基本监控,其实现方式可参照现有技术,因此不再赘述。
分布式队列22、数据库23(如nosql数据库)、分布式存储设备24实现处理架构20所需的任务存储、数据库以及文件存储,具体实现方式也可参照现有技术,因此不再赘述。例如,数据库23可用于信息持久化存储,以满足***运行需要或实现容错功能。
处理架构20的最底层支持物理机或虚拟机29等各种异构硬件,对于用户应用来说无需关心。物理机或虚拟机29的实现方式可参照现有技术,因此不再赘述。
处理架构20采用“队列-worker”的计算模型,但本发明实施例不限于此。处理架构20也可以采用其他计算模型,例如,处理架构20中的部分第二层调度器12也可以采用上述MapReduce方式,而无需队列。
因此,本发明实施例的处理架构20采用两层调度架构,第二层调度器对应于任务,第一层调度器启动或选择任务所对应的第二层调度器,从而可以适用于不同的任务,提高了处理效率和调度灵活性。并且,通过上述“队列-worker”的计算模型,可同时启动不同任务的多个第二层调度器,进一步提高并发性能。
另外,本发明实施例给出高性能、灵活的并行处理架构20可以支持物理机器以及目前较流行的云计算平台、支持大规模集群、支持用户调度策略配置以及自定义、支持不同的计算模型。
图3是本发明一个实施例的分布式计算任务处理方法的流程图。图3的方法可由图1和图2的任务处理***10执行,因此下面结合图1和图2来描述图3的方法,并适当省略重复的描述。
301,第一层调度器11在接收到执行任务的请求时,启动或选择任务对应的第二层调度器12。
例如,在***中没有合适的第二层调度器时,第一层调度器11可启动该任务对应的第二层调度器12。在***中已经存在合适的第二层调度器时,第一层调度器11可从这些合适的第二层调度器中选择该任务对应的第二层调度器12。
302,第一层调度器11向第二层调度器12转发请求。
303,第二层调度器12在接收到第一层调度器转发的请求时,按照任务的逻辑关系将任务分解为多个子任务。
本发明实施例采用两层调度架构,第二层调度器对应于任务,第一层调度器启动或选择任务所对应的第二层调度器,从而可以适用于不同的任务,提高了处理效率和调度灵活性。
在现有的并行处理架构中,只有一层调度,从而需要严格地先后按照map、reduce两步进行任务处理,而本发明实施例没有此限制。本发明实施例的第一层调度器11可以接受各种形式的任务,任务的形式不必限于现有技术中的严格的map、reduce两步。第二层调度器12对应于任务,这样第一层调度器11可以将不同的任务发送给相应的第二层调度器12进行调度处理。第二层调度器12将任务分解为子任务以对任务进行处理,例如调度各个子任务的执行。这样的调度具有更高的灵活性。
另外,现有技术中需要严格地先后按照map、reduce两步的顺序进行任务处理。如果存在很多步骤的处理,则需要通过提交很多次任务请求来完成,处理效率较低。本发明实施例没有此限制。本发明实施例对任务本身以及执行任务或子任务的方式不作限制。例如,任务中所包含的子任务的数目可以比现有技术的map、reduce这两种更多,如三个或三个以上的子任务;而且不限于map、reduce子任务的形式。另外,子任务不必遵循严格的先后顺序,可以并行地执行、串行地执行、或者部分并行部分串行地执行。这样,即使是很多步骤的处理,也只需要较少次数的任务请求,提高了处理效率。
可选地,作为一个实施例,任务的逻辑关系可指示多个子任务的执行依赖关系。所谓执行依赖关系,是指各个子任务的执行操作之间是否相互依赖。
举例来说,假设子任务2必须依赖于子任务1的执行结果,则子任务2应该在子任务1执行之后再执行(即子任务1和子任务2需串行地执行)。另一方面,如果子任务2不依赖于子任务1的全部执行结果,则子任务1和子任务2的可以并行执行,也可以串行执行。
执行依赖关系的一个非限制性的例子可包括:多个子任务中的两个或更多个子任务按照串行、或并行、或部分并行部分串行顺序执行,而不限于现有技术中的map、reduce这两个步骤。这样,如果某一任务存在很多步骤的处理,则无需像MapReduce架构那样提交很多次任务请求,本发明实施例可能仅需提交一次或少量几次任务请求,从而提高了任务的处理效率。
可选地,作为另一实施例,第二层调度器12还可为多个子任务创建相应的队列以存储子任务包含的任务,根据任务的逻辑关系整理队列的顺序。
可选地,作为另一实施例,第二层调度器12还可在队列中存储了子任务包含的任务时,为子任务申请资源,并指示所申请资源的工作单元(worker)管理器启动工作单元,以使得工作单元从队列获取子任务包含的任务以执行任务。
可选地,作为另一实施例,第二层调度器12还可指示工作单元将执行任务的结果放入另一个队列中或输出执行任务的结果。
可选地,作为另一实施例,第二层调度器12还可获取队列和工作单元的进度信息,以确定任务的执行进度。这样,可以实现任务进度的实时查询,方便用户监控。
可选地,作为另一实施例,在步骤301中,第一层调度器11可对任务进行优先级管理,并按照优先级启动或选择第二层调度器12对任务进行处理。
下面,结合具体例子,更加详细地描述本发明的实施例。图4是本发明一个实施例的任务处理过程的示意流程图。例如,图4的过程可由图2的处理架构20执行,因此适当省略重复的描述。
在图4的例子中,假设任务由先后串行执行的子任务1-3(子任务1->子任务2->子任务3)构成。但是本发明实施例不限于该具体例子,其他任何类型的任务均可类似地应用本发明实施例的处理过程。这样的应用均落入本发明实施例的范围内。
401,网络服务(webservice)接收用户提交的执行任务的请求。任务的逻辑关系可以由用户定义。
402,网络服务将请求转发给第一层调度器。
403,第一层调度器向网络服务返回提交请求成功的响应。步骤403是可选的步骤。
404,第一层调度器将接收到的任务,按照优先级计算方法计算优先级且进行排序,选择出优先级高的任务。
405,第一层调度器按照步骤404中选择的任务,启动(如果当时***中没有对应于这种类型的第二层调度器)或选择(***中有可用的对应于这种类型的第二层调度器)合适的第二层调度器。
406,第一层调度器将任务请求转发给在步骤405中启动或选择的第二层调度器。
407,第二层调度器接收到任务请求后,根据任务的逻辑关系对任务进行预处理。具体地,作为一个非限制性的例子,第二层调度器可将任务分解为多个子任务(子任务1、子任务2、子任务3)。
408,第二层调度器根据“队列-worker”计算模型,为子任务1-3创建队列1-3。可选地,第二层调度器可产生初始子任务(对应于子任务1)并将其放入队列1中。此时,第二层调度器可根据子任务1-3之间的执行依赖关系“子任务1->子任务2->子任务3”整理队列1-3的执行顺序为“队列1->队列2->队列3”。
409,第二层调度器发现队列1中有子任务1。例如,第二层调度器可以周期性地检查队列,以查看队列中是否有任务。但本发明实施例对此不作限制,第二层调度器可以按照其他方式发现队列中的子任务。
410,第二层调度器从资源管理器为子任务1申请资源。
411,第二层调度器指示所申请资源的工作单元(worker)管理器启动worker去处理队列1中的子任务1。
412,worker管理器启动worker,且告知worker将处理完子任务1得到的结果(对应于子任务2)放入队列2中。
413:worker启动后,自动去队列1获取并执行子任务1所包含的任务,执行完成后,将执行结果(对应于子任务2)放入队列2中。
414,第二层调度器发现队列2中有子任务2。
415,第二层调度器从资源管理器为子任务2申请资源。
416,第二层调度器指示工作单元(worker)管理器启动worker去处理队列2中的子任务2。
417,worker管理器启动worker,且告知worker将处理完子任务2得到的结果(对应于子任务3)放入队列3中。
418:worker启动后,自动去队列2获取并执行子任务2所包含的任务,执行完成后,将执行结果(对应于子任务3)放入队列3中。
419,第二层调度器发现队列3中有子任务3。
420,第二层调度器从资源管理器为子任务3申请资源。
421,第二层调度器指示工作单元(worker)管理器启动worker去处理队列3中的子任务3。
422,worker管理器启动worker,且告知worker将处理完子任务3得到的结果放入合适的位置(如放入分布式存储设备或返回给用户)。
423,worker启动后,自动去队列3获取并执行子任务3所包含的任务,执行完成后,将执行结果放入合适的位置。
通过上述步骤409-423:worker自动取子任务和放子任务。这样整个任务就可以按照任务定义的逻辑关系进行处理。另外,虽然图4的实施例中将409-423描绘为串行执行,但本发明实施例不限于此。在其他实施例中,当队列1-3无需按顺序执行时,步骤409-413、步骤414-418、步骤419-423的执行顺序有可能交换或重叠。例如,如果队列2的子任务2不依赖于队列1中全部子任务1的执行结果,则在队列1的worker工作时,队列2的worker也可以工作,而无须队列1的worker执行完全部子任务1才能启动队列2的worker。
424,第二层调度器可获取队列或worker的进度信息,判断整个任务执行进度。
425,如果任务执行完成,则第二层调度器上报给第一层调度器。第二层调度器也可以直接供用户实时查询任务的进度。
这样,本发明实施例采用两层调度架构,第二层调度器对应于任务,第一层调度器启动或选择任务所对应的第二层调度器,从而可以适用于不同的任务,提高了处理效率和调度灵活性,并且可以满足多种并行处理业务的需求。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种分布式计算任务处理***,其特征在于,包括:
第一层调度器,用于接收执行任务的请求,启动或选择所述任务对应的第二层调度器并向所述第二层调度器转发所述请求;
第二层调度器,用于在接收到所述第一层调度器转发的请求时,按照所述任务的逻辑关系将所述任务分解为多个子任务。
2.如权利要求1所述的***,其特征在于,所述任务的逻辑关系指示所述多个子任务的执行依赖关系。
3.如权利要求1或2所述的***,其特征在于,所述第二层调度器还用于为所述多个子任务创建相应的队列以存储所述子任务包含的任务。
4.如权利要求3所述的***,其特征在于,在所述队列中存储了所述子任务包含的任务时,所述第二层调度器还用于为所述子任务申请资源,并指示所申请资源的工作单元管理器启动工作单元,以使得所述工作单元从所述队列获取所述子任务包含的任务以执行任务。
5.如权利要求4所述的***,其特征在于,所述第二层调度器还用于指示所述工作单元将执行任务的结果放入另一个队列中或输出所述执行任务的结果。
6.如权利要求4或5所述的***,其特征在于,所述第二层调度器还用于获取所述队列和所述工作单元的进度信息,以确定所述任务的执行进度。
7.如权利要求2-6任一项所述的***,其特征在于,所述多个子任务的执行依赖关系包括:所述多个子任务中的两个或更多个子任务按照串行或者并行顺序执行。
8.如权利要求1-7任一项所述的***,其特征在于,所述第一层调度器还用于对所述任务进行优先级管理,并按照所述优先级启动或选择所述第二层调度器对所述任务进行处理。
9.一种分布式计算任务处理方法,其特征在于,所述方法包括:
第一层调度器在接收到执行任务的请求时,启动或选择所述任务对应的第二层调度器;
所述第一层调度器向所述第二层调度器转发所述请求;
所述第二层调度器在接收到所述第一层调度器转发的请求时,按照所述任务的逻辑关系将所述任务分解为多个子任务。
10.如权利要求9所述的方法,其特征在于,所述任务的逻辑关系指示所述多个子任务的执行依赖关系。
11.如权利要求9或10所述的方法,其特征在于,所述方法还包括:所述第二层调度器为所述多个子任务创建相应的队列以存储所述子任务包含的任务。
12.如权利要求11所述的方法,其特征在于,所述方法还包括:所述第二层调度器在所述队列中存储了所述子任务包含的任务时,为所述子任务申请资源,并指示所申请资源的工作单元管理器启动工作单元,以使得所述工作单元从所述队列获取所述子任务包含的任务以执行任务。
13.如权利要求12所述的方法,其特征在于,所述方法还包括:所述第二层调度器指示所述工作单元将执行任务的结果放入另一个队列中或输出所述执行任务的结果。
14.如权利要求12或13所述的方法,其特征在于,还包括:所述第二层调度器获取所述队列和所述工作单元的进度信息,以确定所述任务的执行进度。
15.如权利要求9-14任一项所述的方法,其特征在于,所述第一层调度器还对所述任务进行优先级管理,并按照所述优先级启动或选择所述第二层调度器对所述任务进行处理。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/070551 WO2013107012A1 (zh) | 2012-01-18 | 2012-01-18 | 分布式计算任务处理***和任务处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102763086A true CN102763086A (zh) | 2012-10-31 |
Family
ID=47056377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012800001658A Pending CN102763086A (zh) | 2012-01-18 | 2012-01-18 | 分布式计算任务处理***和任务处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102763086A (zh) |
WO (1) | WO2013107012A1 (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064736A (zh) * | 2012-12-06 | 2013-04-24 | 华为技术有限公司 | 任务处理装置及方法 |
CN104035817A (zh) * | 2014-07-08 | 2014-09-10 | 领佰思自动化科技(上海)有限公司 | 大规模集成电路物理实现的分布式并行计算方法及其*** |
CN104102949A (zh) * | 2014-06-27 | 2014-10-15 | 北京奇艺世纪科技有限公司 | 一种分布式工作流装置及其处理工作流的方法 |
CN104123182A (zh) * | 2014-07-18 | 2014-10-29 | 西安交通大学 | 基于主从架构的MapReduce任务跨数据中心调度***及方法 |
CN104778074A (zh) * | 2014-01-14 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 一种计算任务处理方法及装置 |
CN105653365A (zh) * | 2016-02-22 | 2016-06-08 | 青岛海尔智能家电科技有限公司 | 任务处理方法及装置 |
CN106445681A (zh) * | 2016-08-31 | 2017-02-22 | 东方网力科技股份有限公司 | 分布式任务调度***及方法 |
CN106547523A (zh) * | 2015-09-17 | 2017-03-29 | 北大方正集团有限公司 | 进度条进度显示方法、装置及*** |
CN103870334B (zh) * | 2012-12-18 | 2017-05-31 | ***通信集团公司 | 一种大规模漏洞扫描的任务分配方法及装置 |
US9886310B2 (en) | 2014-02-10 | 2018-02-06 | International Business Machines Corporation | Dynamic resource allocation in MapReduce |
CN107710173A (zh) * | 2015-05-29 | 2018-02-16 | 高通股份有限公司 | 用于存储器管理单元的多线程转换及事务重新排序 |
CN107818016A (zh) * | 2017-11-22 | 2018-03-20 | 苏州麦迪斯顿医疗科技股份有限公司 | 服务器应用程序设计方法、请求事件处理方法及装置 |
WO2019051942A1 (zh) * | 2017-09-15 | 2019-03-21 | 平安科技(深圳)有限公司 | 一种任务分配方法、终端及计算机可读存储介质 |
CN109885388A (zh) * | 2019-01-31 | 2019-06-14 | 上海赜睿信息科技有限公司 | 一种适用于异构***的数据处理方法和装置 |
CN110569252A (zh) * | 2018-05-16 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 一种数据处理***及方法 |
CN110597613A (zh) * | 2018-06-12 | 2019-12-20 | 成都鼎桥通信技术有限公司 | 任务处理方法、装置、设备及计算机可读存储介质 |
CN110750371A (zh) * | 2019-10-17 | 2020-02-04 | 北京创鑫旅程网络技术有限公司 | 流程执行方法、装置、设备及存储介质 |
WO2020108303A1 (zh) * | 2018-11-30 | 2020-06-04 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架*** |
CN111506409A (zh) * | 2020-04-20 | 2020-08-07 | 南方电网科学研究院有限责任公司 | 一种数据处理方法及*** |
CN111708643A (zh) * | 2020-06-11 | 2020-09-25 | 中国工商银行股份有限公司 | 分布式流媒体平台的批量作业方法及装置 |
CN112596871A (zh) * | 2020-12-16 | 2021-04-02 | 中国建设银行股份有限公司 | 业务处理方法和装置 |
CN113448692A (zh) * | 2020-03-25 | 2021-09-28 | 杭州海康威视数字技术股份有限公司 | 分布式图计算的方法、装置、设备及存储介质 |
CN115268800A (zh) * | 2022-09-29 | 2022-11-01 | 四川汉唐云分布式存储技术有限公司 | 基于计算路由重定向的数据处理方法及数据存储*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791025A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 服务网格***及处理作业的方法 |
CN101169743A (zh) * | 2007-11-27 | 2008-04-30 | 南京大学 | 电力网格中基于多核计算机实现并行潮流计算的方法 |
CN101957780A (zh) * | 2010-08-17 | 2011-01-26 | 中国电子科技集团公司第二十八研究所 | 一种基于资源状态信息的网格任务调度处理器及方法 |
CN102110022A (zh) * | 2011-03-22 | 2011-06-29 | 上海交通大学 | 基于优先级调度的传感器网络嵌入式操作*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7876763B2 (en) * | 2004-08-05 | 2011-01-25 | Cisco Technology, Inc. | Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes |
CN101621460B (zh) * | 2008-06-30 | 2011-11-30 | 中兴通讯股份有限公司 | 一种分组调度方法和装置 |
CN102185761B (zh) * | 2011-04-13 | 2013-08-07 | 中国人民解放军国防科学技术大学 | 一种面向集合预报应用的两层动态调度方法 |
-
2012
- 2012-01-18 CN CN2012800001658A patent/CN102763086A/zh active Pending
- 2012-01-18 WO PCT/CN2012/070551 patent/WO2013107012A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791025A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 服务网格***及处理作业的方法 |
CN101169743A (zh) * | 2007-11-27 | 2008-04-30 | 南京大学 | 电力网格中基于多核计算机实现并行潮流计算的方法 |
CN101957780A (zh) * | 2010-08-17 | 2011-01-26 | 中国电子科技集团公司第二十八研究所 | 一种基于资源状态信息的网格任务调度处理器及方法 |
CN102110022A (zh) * | 2011-03-22 | 2011-06-29 | 上海交通大学 | 基于优先级调度的传感器网络嵌入式操作*** |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9519338B2 (en) | 2012-12-06 | 2016-12-13 | Huawei Technologies Co., Ltd. | Task processing apparatus and method including scheduling current and next-level task processing apparatus |
CN103064736A (zh) * | 2012-12-06 | 2013-04-24 | 华为技术有限公司 | 任务处理装置及方法 |
CN103870334B (zh) * | 2012-12-18 | 2017-05-31 | ***通信集团公司 | 一种大规模漏洞扫描的任务分配方法及装置 |
US10146588B2 (en) | 2014-01-14 | 2018-12-04 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for processing computational task having multiple subflows |
WO2015106687A1 (en) * | 2014-01-14 | 2015-07-23 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for processing computational task |
CN104778074A (zh) * | 2014-01-14 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 一种计算任务处理方法及装置 |
CN104778074B (zh) * | 2014-01-14 | 2019-02-26 | 腾讯科技(深圳)有限公司 | 一种计算任务处理方法及装置 |
US9886310B2 (en) | 2014-02-10 | 2018-02-06 | International Business Machines Corporation | Dynamic resource allocation in MapReduce |
CN104102949A (zh) * | 2014-06-27 | 2014-10-15 | 北京奇艺世纪科技有限公司 | 一种分布式工作流装置及其处理工作流的方法 |
CN104102949B (zh) * | 2014-06-27 | 2018-01-26 | 北京奇艺世纪科技有限公司 | 一种分布式工作流装置及其处理工作流的方法 |
CN104035817A (zh) * | 2014-07-08 | 2014-09-10 | 领佰思自动化科技(上海)有限公司 | 大规模集成电路物理实现的分布式并行计算方法及其*** |
CN104123182A (zh) * | 2014-07-18 | 2014-10-29 | 西安交通大学 | 基于主从架构的MapReduce任务跨数据中心调度***及方法 |
CN104123182B (zh) * | 2014-07-18 | 2015-09-30 | 西安交通大学 | 基于主从架构的MapReduce任务跨数据中心调度***及方法 |
CN107710173A (zh) * | 2015-05-29 | 2018-02-16 | 高通股份有限公司 | 用于存储器管理单元的多线程转换及事务重新排序 |
CN106547523A (zh) * | 2015-09-17 | 2017-03-29 | 北大方正集团有限公司 | 进度条进度显示方法、装置及*** |
CN106547523B (zh) * | 2015-09-17 | 2019-08-06 | 北大方正集团有限公司 | 进度条进度显示方法、装置及*** |
CN105653365A (zh) * | 2016-02-22 | 2016-06-08 | 青岛海尔智能家电科技有限公司 | 任务处理方法及装置 |
CN106445681A (zh) * | 2016-08-31 | 2017-02-22 | 东方网力科技股份有限公司 | 分布式任务调度***及方法 |
CN106445681B (zh) * | 2016-08-31 | 2019-11-29 | 东方网力科技股份有限公司 | 分布式任务调度***及方法 |
WO2019051942A1 (zh) * | 2017-09-15 | 2019-03-21 | 平安科技(深圳)有限公司 | 一种任务分配方法、终端及计算机可读存储介质 |
CN107818016A (zh) * | 2017-11-22 | 2018-03-20 | 苏州麦迪斯顿医疗科技股份有限公司 | 服务器应用程序设计方法、请求事件处理方法及装置 |
CN110569252A (zh) * | 2018-05-16 | 2019-12-13 | 杭州海康威视数字技术股份有限公司 | 一种数据处理***及方法 |
CN110597613A (zh) * | 2018-06-12 | 2019-12-20 | 成都鼎桥通信技术有限公司 | 任务处理方法、装置、设备及计算机可读存储介质 |
WO2020108303A1 (zh) * | 2018-11-30 | 2020-06-04 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架*** |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架*** |
EP3889774A4 (en) * | 2018-11-30 | 2022-08-03 | ZTE Corporation | HETEROGENOUS COMPUTATION-BASED TASK PROCESSING METHOD AND SOFTWARE-HARDWARE FRAMEWORK |
US11681564B2 (en) | 2018-11-30 | 2023-06-20 | Zte Corporation | Heterogeneous computing-based task processing method and software and hardware framework system |
CN109885388A (zh) * | 2019-01-31 | 2019-06-14 | 上海赜睿信息科技有限公司 | 一种适用于异构***的数据处理方法和装置 |
CN110750371A (zh) * | 2019-10-17 | 2020-02-04 | 北京创鑫旅程网络技术有限公司 | 流程执行方法、装置、设备及存储介质 |
CN113448692A (zh) * | 2020-03-25 | 2021-09-28 | 杭州海康威视数字技术股份有限公司 | 分布式图计算的方法、装置、设备及存储介质 |
CN111506409A (zh) * | 2020-04-20 | 2020-08-07 | 南方电网科学研究院有限责任公司 | 一种数据处理方法及*** |
CN111708643A (zh) * | 2020-06-11 | 2020-09-25 | 中国工商银行股份有限公司 | 分布式流媒体平台的批量作业方法及装置 |
CN112596871A (zh) * | 2020-12-16 | 2021-04-02 | 中国建设银行股份有限公司 | 业务处理方法和装置 |
CN115268800A (zh) * | 2022-09-29 | 2022-11-01 | 四川汉唐云分布式存储技术有限公司 | 基于计算路由重定向的数据处理方法及数据存储*** |
CN115268800B (zh) * | 2022-09-29 | 2022-12-20 | 四川汉唐云分布式存储技术有限公司 | 基于计算路由重定向的数据处理方法及数据存储*** |
Also Published As
Publication number | Publication date |
---|---|
WO2013107012A1 (zh) | 2013-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102763086A (zh) | 分布式计算任务处理***和任务处理方法 | |
US9916183B2 (en) | Scheduling mapreduce jobs in a cluster of dynamically available servers | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US9785472B2 (en) | Computing cluster performance simulation using a genetic algorithm solution | |
US8381212B2 (en) | Dynamic allocation and partitioning of compute nodes in hierarchical job scheduling | |
KR101893982B1 (ko) | 분산 처리 시스템, 분산 처리 시스템의 스케줄러 노드 및 스케줄 방법, 및 이를 위한 프로그램 생성 장치 | |
CN103309946B (zh) | 多媒体文件处理方法、装置及*** | |
US10505791B2 (en) | System and method to handle events using historical data in serverless systems | |
CN109992407B (zh) | 一种yarn集群gpu资源调度方法、装置和介质 | |
US8903981B2 (en) | Method and system for achieving better efficiency in a client grid using node resource usage and tracking | |
CN104239144A (zh) | 一种多级分布式任务处理*** | |
US11507419B2 (en) | Method,electronic device and computer program product for scheduling computer resources in a task processing environment | |
CN101652750A (zh) | 数据处理装置、分散处理***、数据处理方法及数据处理程序 | |
CN103377075A (zh) | 管理任务的方法、装置及*** | |
CN102541460A (zh) | 一种多磁盘场景下的磁盘管理方法和设备 | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
CN101510163A (zh) | 一种计划任务的处理方法及*** | |
CN105808346A (zh) | 一种任务调度方法与装置 | |
Kalayci et al. | Distributed and Adaptive Execution of Condor DAGMan Workflows. | |
CN116627661B (zh) | 算力资源调度的方法和*** | |
US11429361B2 (en) | Agents installation in data centers based on host computing systems load | |
Tang et al. | A survey on scheduling techniques in computing and network convergence | |
Mansouri et al. | Weighted data replication strategy for data grid considering economic approach | |
CN108268316A (zh) | 作业调度的方法及装置 | |
Mishra et al. | A memory-aware dynamic job scheduling model in Grid computing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121031 |