Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TASK PROCESSING SYSTEM AND TASK PROCESSING METHOD FOR DISTRIBUTED COMPUTATION
Document Type and Number:
WIPO Patent Application WO/2013/107012
Kind Code:
A1
Abstract:
Embodiments of the present invention provide a task processing system and a task processing method for distributed computation. The system comprises: a first level scheduler, used for receiving a request of executing a task, starting or selecting a second level scheduler corresponding to the task, and forwarding the request to the second level scheduler; and the second level scheduler, used for decomposing the task into a plurality of subtasks according to a logical relationship of the task when receiving the request forwarded by the first level scheduler. The embodiments of the invention employ a two-level scheduling framework, the second level scheduler corresponding to the task and the first level scheduler starting or selecting the second level scheduler corresponding to the task, so that the task processing system and the task processing method can be used in different tasks, and the processing efficiency and scheduling flexibility are improved.

Inventors:
JIN BIANBIAN (CN)
LIU WENYU (CN)
YAN JUN (CN)
Application Number:
PCT/CN2012/070551
Publication Date:
July 25, 2013
Filing Date:
January 18, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
JIN BIANBIAN (CN)
LIU WENYU (CN)
YAN JUN (CN)
International Classes:
H04L12/56
Foreign References:
CN1981484A2007-06-13
CN102185761A2011-09-14
CN101621460A2010-01-06
Attorney, Agent or Firm:
LONGSUN LEAD IP LTD. (CN)
北京龙双利达知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求

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任一项所述的方法, 其特征在于, 所述第一层调 度器还对所述任务进行优先级管理, 并按照所述优先级启动或选择所述第二 层调度器对所述任务进行处理。

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中的部分第 因此, 本发明实施例的处理架构 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的例子中, H殳任务由先后串行执行的子任务 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->队歹1 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 ), 磁碟或者光盘等各种可 以存储程序代码的介质。

以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应所述以权利要求的保护范围为准。