保捱科技网
您的当前位置:首页一种跨集群的任务调度方法及装置[发明专利]

一种跨集群的任务调度方法及装置[发明专利]

来源:保捱科技网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 107621973 A(43)申请公布日 2018.01.23

(21)申请号 201610550845.7(22)申请日 2016.07.13

(71)申请人 阿里巴巴集团控股有限公司

地址 英属开曼群岛大开曼岛资本大厦一座

四层847号邮箱(72)发明人 刘凡 

(74)专利代理机构 北京集佳知识产权代理有限

公司 11227

代理人 王玲 王宝筠(51)Int.Cl.

G06F 9/48(2006.01)

权利要求书4页 说明书13页 附图4页

(54)发明名称

一种跨集群的任务调度方法及装置(57)摘要

本申请涉及一种跨集群的任务调度方法及装置,所述方法包括:获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。本申请可以实现任务粒度的跨集群调度,灵活性强,降低了资源浪费,有效提高了数据处理效率。CN 107621973 ACN 107621973 A

权 利 要 求 书

1/4页

1.一种任务调度系统,其特征在于,所述系统包括任务调度装置和控制集群服务器,其中:

所述任务调度装置用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表;

所述控制集群服务器用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。

2.根据权利要求1所述的系统,其特征在于,所述控制集群服务器还用于配置任务运行结果输出策略,所述任务运行结果输出策略用于配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群、配置由所述第二集群存储所述运行结果、或者配置所述第二集群和所述第一集群将各任务的运行结果发送给控制集群服务器。

3.根据权利要求1所述的系统,其特征在于,所述控制集群服务器还用于根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。

4.一种任务调度方法,其特征在于,所述方法包括:

获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;

从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。

5.根据权利要求4所述的方法,其特征在于,在获取在第一集群运行的一个或多个项目包含的各任务的任务特征之前,所述方法还包括:

提取在所述第一集群运行的一个或多个项目包含的各任务的任务指纹;所述各任务的任务指纹用于唯一标识各任务;

所述获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库包括:

获取在第一集群运行的一个或多个项目包含的各任务的任务特征,保存各任务的任务指纹与所述任务特征的对应关系以建立任务特征库;

所述将所述待调度任务集合中的任务从所述第一集群调度到所述第二集群上运行包括:

根据所述待调度任务集合中的各任务的任务指纹,将所述任务从所述第一集群调度到所述第二集群上运行。

6.根据权利要求5所述的方法,其特征在于,所述提取在所述第一集群运行的一个或多个项目包含的各任务的任务指纹包括:

获取任务的代码,去除所述任务的代码中的变量,获取处理后的任务的代码;使用第一方法对所述处理后的任务的代码进行运算,获取与所述任务的代码唯一对应的运算结果作为所述任务的任务指纹。

7.根据权利要求4所述的方法,其特征在于,所述任务特征包括下述中的任意一种或多种:

2

CN 107621973 A

权 利 要 求 书

2/4页

任务的输入数据量;任务消耗的计算资源量;任务的中间结果存储数据量;任务的内存占用量;任务的输出数据量。

8.根据权利要求4所述的方法,其特征在于,所述第二集群的集群特征根据所述第二集群的机型和网络类型确定,所述第二集群的集群特征包括带宽大小、磁盘容量、内存容量和/或计算容量。

9.根据权利要求4至8任意一项所述的方法,其特征在于,所述根据第二集群的集群特征确定任务调度策略包括下述中的任意一种或多种:

当所述第二集群的带宽小于第一预设阈值时,优先调度计算输入比高的任务;其中,所述计算输入比为任务消耗的计算资源量与任务的输入数据量的比值;

当所述第二集群的磁盘容量小于第二预设阈值时,优先调度计算存储比高的任务;其中,所述计算存储比为任务消耗的计算资源量与任务的中间结果存储数据量的比值;

当所述第二集群的内存容量小于第三预设阈值时,优先调度内存占用量低的任务;确定所述第二集群任务运行的高峰时刻和低峰时刻,优先在所述低峰时刻调度所述第一集群的任务。

10.根据权利要求4所述的方法,其特征在于,所述从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表包括:

根据所述任务调度策略,从所述任务特征库中选取与所述任务调度策略匹配的任务生成候选任务集合;

根据所述第二集群的集群特征以及所述候选任务集合中各任务的任务特征确定任务调度规模,从所述候选任务集合中选取与所述任务调度规模匹配的待调度任务,生成待调度任务的列表。

11.根据权利要求10所述的方法,其特征在于,所述根据所述第二集群的集群特征以及所述候选任务集合中各任务的任务特征确定任务调度规模包括:

根据所述第二集群的计算容量以及所述候选任务集合中各任务消耗的计算资源量确定任务调度规模。

12.一种任务调度方法,其特征在于,所述方法包括:控制集群服务器获取待调度任务列表;

控制集群服务器根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。

13.根据权利要求12所述的方法,其特征在于,所述方法还包括:控制集群服务器配置任务运行结果输出策略,所述任务运行结果输出策略用于控制各集群运行的各任务运行结果的输出。

14.根据权利要求13所述的方法,其特征在于,所述控制集群服务器配置任务运行结果输出策略具体为:

所述控制集群服务器配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群。

3

CN 107621973 A

权 利 要 求 书

3/4页

15.根据权利要求13所述的方法,其特征在于,所述控制集群服务器配置任务运行结果输出策略具体为:

所述控制集群服务器配置由所述第二集群存储在所述第二集群运行的各任务的运行结果。

16.根据权利要求13所述的方法,其特征在于,所述控制集群服务器配置任务运行结果输出策略具体为:

所述控制集群服务器配置所述第二集群和所述第一集群将各任务的运行结果发送给所述控制集群服务器。

17.根据权利要求12所述的方法,其特征在于,所述方法还包括:所述控制集群服务器根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。

18.一种任务调度装置,其特征在于,所述装置包括:任务特征库建立单元,用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;

策略确定单元,用于根据第二集群的集群特征确定任务调度策略;任务选取单元,用于从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。

19.一种控制集群服务器,其特征在于,包括:获取单元,用于获取待调度任务列表;调度单元,用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。

20.一种用于跨集群的任务调度的装置,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;

根据第二集群的集群特征确定任务调度策略;

从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。

21.根据权利要求20所述的装置,所述处理器具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

当所述第二集群的带宽小于第一预设阈值时,优先调度计算输入比高的任务;其中,所述计算输入比为任务消耗的计算资源量与任务的输入数据量的比值;

当所述第二集群的磁盘容量小于第二预设阈值时,优先调度计算存储比高的任务;其中,所述计算存储比为任务消耗的计算资源量与任务的中间结果存储数据量的比值;

当所述第二集群的内存容量小于第三预设阈值时,优先调度内存占用量低的任务。22.根据权利要求20所述的装置,所述处理器具体还用于执行所述一个或者一个以上

4

CN 107621973 A

权 利 要 求 书

4/4页

程序包含用于进行以下操作的指令:

根据所述第二集群的计算容量以及所述候选任务集合中各任务消耗的计算资源量确定任务调度规模。

23.一种控制集群服务器,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

获取待调度任务列表;

根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。

5

CN 107621973 A

说 明 书

一种跨集群的任务调度方法及装置

1/13页

技术领域

[0001]本申请涉及计算机技术领域,尤其涉及一种跨集群的任务调度方法及装置。背景技术

[0002]随着数据处理规模的增长,传统的单机计算模式已经不能满足日益增长的信息服务需求。集群(cluster)是一组相互的、通过高速网络互联的计算机,它们构成了一个计算组,并可以统一的方式进行管理。集群可以实现很高的运算速度,完成大运算量的计算,具有较高的响应能力,能够降低整体运维成本,因此得到了越来越多的应用。[0003]然而,随着大数据技术的发展和企业数据仓库中离线计算任务数据规模的膨胀,单独搭建计算集群带来的成本越来越高昂,越来越多的用户倾向于不再为离线的计算服务单独建立集群和机房,而是将在线业务与离线业务混布在同一个集群。混布集群只承担计算任务而不承担存储任务,以达到节约成本的目的。这时,需要把一部分在离线集群运行的计算任务调度到混布集群上运行。因此,如何实现跨集群的任务调度成为一个值得关注的问题。

[0004]现有技术中,存在一种跨集群调度方法,可以将特定业务或项目下的所有任务从一个集群调度到另一个集群上。这种方式只能够实现业务或者项目级别的调度,调度粒度很粗,存在灵活性不强的缺陷。此外,若所述业务出现一个异常任务,就要将整个业务中包括正常运行的任务的所有任务均取消,并将整个业务的所有任务重新迁移到原有集群上重新运行。这种方式造成了计算资源和时间的浪费,并降低了数据处理效率。发明内容

[0005]本申请的目的是,提供一种跨集群的任务调度方法及装置,可以实现任务粒度的跨集群调度,灵活性强,降低了资源浪费,有效提高了数据处理效率。[0006]第一方面,本申请提供了一种任务调度系统,所述系统包括任务调度装置和控制集群服务器,其中:所述任务调度装置用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表;所述控制集群服务器用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。[0007]可选地,所述控制集群服务器还用于配置任务运行结果输出策略,所述任务运行结果输出策略用于配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群、配置由所述第二集群存储所述运行结果、或者配置所述第二集群和所述第一集群将各任务的运行结果发送给控制集群服务器。[0008]可选地,所述控制集群服务器还用于根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。[0009]第二方面,本申请提供了一种跨集群的任务调度方法,所述方法包括:获取在第一

6

CN 107621973 A

说 明 书

2/13页

集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。

[0010]第三方面,本申请提供了一种跨集群的任务调度装置,所述装置包括:任务特征库建立单元,用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;策略确定单元,用于根据第二集群的集群特征确定任务调度策略;任务选取单元,用于从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。[0011]第四方面,本申请提供了一种用于跨集群的任务调度的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。

[0012]第五方面,本申请提供了一种任务调度方法,所述方法包括:控制集群服务器获取待调度任务列表;控制集群服务器根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。[0013]第六方面,本申请提供了一种控制集群服务器,包括:获取单元,用于获取待调度任务列表;调度单元,用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。[0014]第七方面,本申请提供了一种控制集群服务器,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:获取待调度任务列表;根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。

[0015]本申请实施例提供的跨集群的任务调度方法及装置,可以根据第二集群的集群特征确定任务调度策略,根据在第一集群运行的一个或多个项目包含的各任务的任务特征选取与所述任务调度策略匹配的任务以生成待调度任务的列表,便于将将所述待调度任务集合中的任务从第一集群调度到第二集群运行。本申请实施例可以实现任务粒度的跨集群调度,灵活性强,降低了资源浪费,有效提高了数据处理效率。附图说明

[0016]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于

7

CN 107621973 A

说 明 书

3/13页

本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

[0017]图1为本申请实施例可以应用的一个示意性应用场景;

[0018]图2为本申请实施例提供的一种跨集群的任务调度方法流程图;[0019]图3为本申请实施例提供的又一种跨集群的任务调度方法流程图;[0020]图4为本申请实施例提供的一种跨集群的任务调度装置示意图;

[0021]图5是根据一示例性实施例示出的一种用于跨集群的任务调度的装置的框图;[0022]图6为本申请实施例提供的任务调度系统示意图;[0023]图7为本申请实施例提供的任务调度方法示意图;

[0024]图8为本申请实施例提供的一种控制集群服务器示意图;[0025]图9为本申请实施例提供的另一种控制集群服务器示意图。

具体实施方式

[0026]本申请实施例提供的跨集群的任务调度方法方法及装置,可以实现任务粒度的跨集群调度,灵活性强,降低了资源浪费,有效提高了数据处理效率。[0027]为使得本申请的发明目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。[0028]参见图1,为本申请实施例的示例性应用场景。本申请实施例提供的方法和装置可以应用于如图1所示的场景,其中,本申请实施例提供的方法和装置可以将第一集群100中的任务调度到第二集群200中。如图1所示,第一集群预先被分配了一个或多个项目,例如项目(或者称之为业务),例如项目101,项目102,项目103……每个项目又包括若干任务,例如任务1、任务2、任务3、任务4……同样地,第二集群中也运行了若干项目。当满足特定条件,需要将第一集群任务调度到第二集群中运行时,本申请实施例提供的方法和装置可以实现任务粒度的调度,即可以将第一集群中运行或计算的一个或多个项目中的部分任务调度到第二集群中运行,以提高系统整体的利用效率。例如将项目101中的任务1、任务2,以及项目102中的任务3、任务4调度到第二集群200中运行,而无需调度整个项目101、项目102,实现了任务的灵活调度。其中,所述任务调度装置400用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表;所述控制集群服务器300用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。需要注意的是,上述应用场景仅是为了便于理解本申请而示出,本申请的实施方式在此方面不受任何。相反,本申请的实施方式可以应用于适用的任何场景。[0029]首先参照图6,为本申请实施例提供的任务调度系统示意图。如图7所示,本申请实施例提供的任务调度系统包括任务调度装置400和控制集群服务器300,其中:

[0030]所述任务调度装置400用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;根据第二集群的集群特征确定

8

CN 107621973 A

说 明 书

4/13页

任务调度策略;从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表。

[0031]所述控制集群服务器300用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。[0032]在一些实施方式中,所述控制集群服务器300还用于配置任务运行结果输出策略,所述任务运行结果输出策略用于配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群、配置由所述第二集群存储所述运行结果、或者配置所述第二集群和所述第一集群将各任务的运行结果发送给控制集群服务器。举例说明,控制集群服务器300用于配置任务运行结果输出策略。例如,控制集群服务器300可以配置由第二集群存储在第二集群运行的各任务的运行结果,或者,配置由第二集群将部分任务的运行结果发送给第一集群,其中,所述部分任务为所述待调度任务列表中的任务。又或者,控制集群服务器300可以配置由所述第一集群和第二集群分别将运行在各自集群上的任务的运行结果发送给控制集群服务器,由控制集群服务器汇总各项目包含的任务的运行结果。[0033]在一些实施方式中,所述控制集群服务器还用于根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。举例说明,在第一集群运行有项目101,项目101包含任务1、任务2、任务3、任务4,其中,任务2、任务3、任务4的执行依赖任务1的运行结果。当根据第二集群的集群特征确定任务调度策略,将第一集群运行的项目101中的任务2、任务3、任务4调度到第二集群上运行时,可以在任务执行过程中,预先将任务1的运行结果发送给第二集群,以便任务2、任务3、任务4执行时使用。这样的处理方式,无需任务2、任务3、任务4分别向第一集群请求任务1的运行结果,处理效率高、降低了资源浪费。[0034]以上从任务调度系统整体上对本申请的方案进行了说明,下面从任务调度装置的角度对本申请的调度方法进行说明。具体地,下面将结合附图2至附图3对本申请示例性实施例示出的跨集群的任务调度方法进行介绍。[0035]参见图2,是本申请实施例提供的跨集群的任务调度方法流程图,如图2所示,本申请实施例的跨集群的任务调度方法包括:[0036]S201、获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库。[0037]具体实现时,第一集群是原集群,第二集群是目标集群,本申请实施例提供的方法可以将第一集群中的任务调度到第二集群中运行。为了描述的方便,下文以第一集群为离线集群、第二集群为混布集群为例进行说明。当然,第一集群也可以是混布集群,第二集群也可以是离线集群。本申请对此不进行。需要说明的是,预先分配了一个或多个项目给第一集群,本申请提供的方法可以在所述一个或多个项目运行、计算过程中制定调度策略和迁移任务,从至少某一项目中抽取部分任务迁移到第二集群,以提高系统整体的利用效率。在获取各任务的任务特征时,可以获取第一集群运行的所有项目包含的任务的特征,也可以获取在第一集群运行的至少一个项目包含的各任务的特征。[0038]在一些实施方式中,在获取在第一集群运行的一个或多个项目包含的各任务的任务特征之前,还可以包括:提取在所述第一集群运行的一个或多个项目包含的各任务的任务指纹。其中,所述各任务的任务指纹用于唯一标识各任务。具体实现时,提取的任务指纹是每一个计算任务的唯一标识,也是基于任务粒度进行跨集群调度的最小单位。由于集群

9

CN 107621973 A

说 明 书

5/13页

中每天定时运行的计算任务即使计算逻辑不发生任何变化,也会因为运行时间等因素的不一致导致每天真正的执行的代码不一样,因此需要将任务代码中的变量去除,找出计算任务中恒定不变的定量,以生成一个唯一且稳定不变的任务指纹用于唯一标识一个计算任务。具体地,可以从任务的运行日志中提取任务指纹。[0039]在一些实施方式中,所述提取在所述第一集群运行的一个或多个项目包含的各任务的任务指纹包括:获取任务的代码,去除所述任务的代码中的变量,获取处理后的任务的代码;使用第一方法对所述处理后的任务的代码进行运算,获取与所述任务的代码唯一对应的运算结果作为所述任务的任务指纹。举例说明,从任务运行日志中获取任务的代码,将任务代码中所有的变量去除,所述变量例如可以是日期。[0040]举例说明,对于同一段代码,在2016年1月27日执行的代码为:[0041]select*from a where ds=20160127[0042]在2016年1月26日执行的代码为:[0043]select*from a where ds=20160126[0044]在对任务代码进行处理时,可以将其中“20160127”这样的日期变量给识别出来,并且删除掉,只剩下'select*from a where ds='这样一段不会变化的文本,作为处理后的任务代码。而后使用第一方法对所述处理后的任务的代码进行运算,获取与所述唯一对应的运算结果,将其作为所述任务的任务指纹。例如,所述第一方法可以是MD5(英文全称为Message Digest Algorithm 5,中文全称为消息摘要算法第五版)对其进行运算,以生成唯一的任务指纹。当然,也可以采用其他方法,例如MD3(英文全称为Message Digest Algorithm3,中文全称为消息摘要算法第三版)、MD4(英文全称为Message Digest Algorithm 4,中文全称为消息摘要算法第四版)等,在此不进行限定。所述任务指纹可以唯一标识所述任务。

[0045]在一些实施方式中,所述获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库包括:获取在第一集群运行的一个或多个项目包含的各任务的任务特征,保存各任务的任务指纹与所述任务特征的对应关系以建立任务特征库。具体实现时,可以任务指纹为粒度,提取和计算每一个任务的运行特征数据作为其任务特征,并将各任务特征汇总生成一个任务特征库,所述任务特征库中存储有任务指纹与任务特征的对应关系。[0046]其中,所述任务特征可以包括下述中的任意一种或多种:[0047](1)任务的输入数据量。具体可以为每一个任务运行期间从不同机房的读入数据量,这一特征与跨集群调度读取数据时候的带宽占比相关联。[0048](2)任务消耗的计算资源量。具体可以为每一个计算任务运行期间占用的CPU核数*时间。混布集群为例的规模决定了可供调度的任务的计算总量。[0049](3)任务的中间结果存储(shuffle)数据量。在任务运行时,会缓存一些中间结果,这一特征与混布集群的本地磁盘容量相关联。[0050](4)任务的内存占用量。具体可以为每一个任务的内存占比,这一特征与混布集群的内存总量相关联.

[0051](5)任务的输出数据量。具体可以为每一个任务的最终输出数据量,这一特征决定了任务回写原集群时候的带宽占比。任务的输出数据量与任务的输入数据量的和值应当不

10

CN 107621973 A

说 明 书

6/13页

超过混布集群的带宽极限。[0052]S202、根据第二集群的集群特征确定任务调度策略。[0053]具体实现时,可以根据所述第二集群的机型和网络类型确定第二集群的集群特征,所述第二集群的集群特征包括带宽大小、磁盘容量、内存容量和/或计算容量。举例说明,可以根据第二集群的机型确定磁盘容量、内存容量和/或计算容量,可以根据第二集群的网络类型确定带宽大小。[0054]在一些实施方式中,根据第二集群的集群特征确定任务调度策略可以包括下述中的任意一种或多种:

[0055](1)当所述第二集群的带宽小于第一预设阈值时,优先调度计算输入比高的任务;其中,所述计算输入比为任务消耗的计算资源量与任务的输入数据量的比值。其中,第一预设阈值可以根据经验和需要设定。举例说明,若所述第二集群的带宽小于第一预设阈值,则说明第二集群的带宽将会成为瓶颈,这时可以优先调度计算输入比高的任务。其中,计算输入比高的任务具有高计算、低带宽占用的特点,优先调度这种特征的任务,可以减轻第二集群的带宽压力。

[0056](2)当所述第二集群的磁盘容量小于第二预设阈值时,优先调度计算存储比高的任务;其中,所述计算存储比为任务消耗的计算资源量与任务的中间结果存储数据量的比值。其中,第二预设阈值可以根据经验和需要设定。举例说明,若所述第二集群的磁盘容量小于第二预设阈值,则说明第二集群的本地磁盘容量将会成为瓶颈,这时可以优先调度计算存储比高的任务。其中,计算存储比高的任务具有高计算、低磁盘占用的特点,优先调度这种特征的任务,可以减轻第二集群的磁盘压力。

[0057](3)当所述第二集群的内存容量小于第三预设阈值时,优先调度内存占用量低的任务。其中,第三预设阈值可以根据经验和需要设定。举例说明,若所述内存容量小于第三预设阈值,则说明第二集群的内存容量将会成为瓶颈,这时可以优先调度内存占用量低的任务。其中,内存占用量低的任务具有高计算、低内存占用的特点,优先调度这种特征的任务,可以减轻第二集群的内存压力。

[0058](4)确定所述第二集群任务运行的高峰时刻和低峰时刻,优先在所述低峰时刻调度第一集群的任务。举例说明,任务运行存在高峰时刻和低峰时刻,高峰时刻计算资源占用较多、资源有限,高峰时刻计算资源占用较少、资源相对充足。因此,在将第一集群的任务调度到第二集群上运行时,可以错峰调度,例如在第二集群任务运行的低峰时刻,调度第一集群的任务到第二集群上运行,以此提高系统整体的运行效率,充分利用计算资源。[0059]需要说明的是,上述任务调度策略可以单独适用,也可以组合起来适用。当然,以上仅为任务调度策略的示例性说明,不视为对本申请的。[0060]需要说明的是,S201和S202的顺序可以颠倒地执行,或者并行地执行。[0061]S203、从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。[0062]具体实现时,可以根据S202中确定的任务调度策略,根据所述任务特征库中各任务的任务特征,确定符合所述任务调度策略的任务,以生成候选任务集合。而后,再根据所述第二集群的集群特征以及所述候选任务集合中各任务的任务特征确定任务调度规模,从

11

CN 107621973 A

说 明 书

7/13页

所述候选任务集合中选取与所述任务调度规模匹配的待调度任务,生成待调度任务的列表[0063]在一些实施方式中,在确定任务调度规模即调度任务的数量时,可以根据所述第二集群的计算容量以及所述候选任务集合中各任务消耗的计算资源量确定任务调度规模。[00]举例说明,若所述任务调度策略为优先调度计算输入比高的任务时,可以根据各任务的任务特征,计算各任务的计算输入比,并将各任务按照计算输入比的大小从高到低进行排序。需要说明的是,可以设定第四预设阈值,计算输入比大于所述第四预设阈值的任务可以进入候选任务集合。然后,再根据混布集群的计算容量和选取的各任务的计算量一起决定调度任务规模。假设混布集群一共100台机器,每个机器32个CPU核,集群的总容量就是3200核*天;若每个候选任务集合中的任务的计算资源消耗是1核*天,任务调度规模就可以是3200个任务。

[0065]又举例说明,若所述任务调度策略为优先调度计算存储比高的任务时,可以根据各任务的任务特征,计算各任务的计算存储比,并将各任务按照计算存储比的大小从高到低进行排序。需要说明的是,可以设定第五预设阈值,计算存储比大于所述第五预设阈值的任务可以进入候选任务集合。然后,再根据混布集群的计算容量和选取的各任务的计算量一起决定调度任务规模,例如确定的任务规模是100个,则优先调度计算存储比排在前100位的任务,以生成待调度任务集合。[0066]又举例说明,若所述任务调度策略为优先调度内存占用量低的任务时,可以根据各任务的任务特征,计算各任务的内存占用量,并将各任务按照内存占用量的大小从低到高进行排序。需要说明的是,可以设定第六预设阈值,内存占用量小于所述第六预设阈值的任务可以进入候选任务集合。然后,再根据混布集群的计算容量和选取的各任务的计算量一起决定调度任务规模,例如确定的任务规模是200个,则优先调度内存占用量按照从小到大的顺序排序、排在前200位的任务,以生成待调度任务集合。[0067]当然,也可以根据第二集群的带宽、内存占用量、磁盘容量和/或计算容量以及各任务的任务特征来综合确定任务的调度规模,本申请对此不进行限定。[0068]在生成待调度任务的列表后,控制集群服务器用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。具体地,在确定了待调度任务列表后,即可以根据所述待调度任务列中的各任务的任务指纹,将所述任务从所述第一集群调度到所述第二集群上运行。[0069]在本申请实施例中,可以实现任务粒度的跨集群调度,灵活性强。由于可以根据第二集群的集群特征确定合适的调度策略以及与之匹配的任务,因此可以实现计算资源的充分利用,降低资源浪费,并有效提高了数据处理效率。此外,由于是任务粒度的调度,因此,若出现了异常任务,只需要取消所述异常任务即可,并影响其他正常任务的运行,提高了系统的容错能力,减少了时间和资源的耗费。

[0070]为了便于本领域技术人员更清楚地理解本申请在具体场景下的实施方式,下面以一个具体示例对本申请实施方式进行介绍。需要说明的是,该具体示例仅为使得本领域技术人员更清楚地了解本申请,但本申请的实施方式不限于该具体示例。[0071]参见图3,为本申请实施例提供的又一种跨集群的任务调度方法流程图,所示方法可以包括:[0072]S301,从任务运行日志中提取离线集群的各任务的任务指纹。

12

CN 107621973 A[0073]

说 明 书

8/13页

S302,以任务指纹为粒度,提取和计算每一个任务的任务特征,生成任务特征库。

其中,所述任务特征库保存了任务指纹与任务特征的对应关系。[0074]S303,根据所述混布集群的机型和网络类型确定混布集群的集群特征。[0075]S304,根据所述混布集群的集群特征确定任务调度策略。[0076]S305,根据所述任务调度策略、各任务的任务特征,从所述任务特征库中选取与所述任务调度策略匹配的任务,生成候选任务集合。[0077]S306,根据所述混布集群的计算容量以及所述候选任务集合中各任务消耗的计算资源量确定任务调度规模。[0078]S307,从所述候选任务集合中选取与所述任务调度规模匹配的待调度任务,生成待调度任务集合。[0079]S308,将所述待调度任务集合中的任务从所述离线集群调度到所述混布集群上运行。

[0080]需要说明的是,上述各步骤的具体实现可以参照图2所示实施例进行。[0081]以上从任务调度装置的角度对本申请的调度方法进行说明。下面将结合附图7从控制集群服务器的角度对本申请示例性实施例示出的跨集群的任务调度方法进行介绍。[0082]图7所示的方法应用于控制集群服务器,所示方法例如可以包括:[0083]S701,控制集群服务器获取待调度任务列表。[0084]具体实现时,控制集群服务器可以从任务调度装置获取待调度任务的列表。获取的方式可以是非常灵活的,可以是所述任务调度装置在生成待调度任务列表后,主动发送给控制集群服务器的,也可以是控制集群服务器向任务调度装置拉取所述待调度任务列表。所述待调度任务的列表是由所述任务调度装置通过获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库,根据第二集群的集群特征确定任务调度策略,从所述任务特征库中选取与所述任务调度策略匹配的任务而生成的。所述待调度任务列表的生成过程具体请参见图2和图3所示实施例的描述,在此不再赘述。[0085]S702,控制集群服务器根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。[0086]具体实现时,所述控制服务器可以根据所述待调度任务列中的各任务的任务指纹,将所述任务从所述第一集群调度到所述第二集群上运行。[0087]在一些实施方式中,所述控制服务器还可以配置任务运行结果输出策略,所述任务运行结果输出策略用于控制各集群运行的各任务的运行结果的输出。[0088]在一些实施方式中,所述控制集群服务器配置任务运行结果输出策略具体为:所述控制集群服务器配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群。举例说明,所述控制集群服务器可以配置由第二集群将部分任务的运行结果发送给第一集群,其中,所述部分任务为所述待调度任务列表中的任务。例如,任务调度装置在生成待调度任务的列表后,控制集群服务器可以根据待调度任务的列表将列表中的任务从第一集群调度到第二集群中运行,并且配置由第二集群将所述列表中的任务的最终运行结果发送给第一集群。这种方式,无需第一集群与第二集群交互即可以由第一集群获取任务运行结果,特别是对于将同一项目中的不同任务分布到不同集群中运行的场景是特别有利的。原集群

13

CN 107621973 A

说 明 书

9/13页

可以获取调度任务在目的集群的运行结果,并可以将同一项目下的在不同集群运行的各任务的运行结果汇总,有效提高了系统整体的数据处理效率和协同性。[00]在一些实施方式中,所述控制集群服务器配置任务运行结果输出策略具体为:所述控制集群服务器配置由所述第二集群存储在所述第二集群运行的各任务的运行结果。在这一实施方式中,第二集群可以将待调度任务列表中的任务运行后得到的运行结果存储在本地。特别是一些无需同步到第一集群或者其他系统的结果,有效降低了集群之间或者各系统之间的数据传输压力。[0090]在一些实施方式中,所述控制集群服务器配置任务运行结果输出策略具体为:所述控制集群服务器配置所述第二集群和所述第一集群将各任务的运行结果发送给所述控制集群服务器。在这些实施方式中,由所述第一集群和第二集群分别将运行在各自集群上的任务的运行结果发送给控制集群服务器,由控制集群服务器汇总各项目包含的任务的运行结果。在这一实施方式中,由控制集群服务器集中存储、管理各任务运行结果,并可以根据任务运行结果进行相应的处理。例如,第一集群、第二集群将任务运行失败或者成功的结果发送给控制集群服务器。当控制集群服务器发现某一任务运行失败时,可以调度其他资源来处理运行失败的任务或者将运行失败的任务及时从集群中删除,避免其对其他任务的影响。当然,具体的处理方式可以是非常灵活的,在此不进行限定。[0091]在一些实施方式中,所述控制集群服务器还可以根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。举例说明,在第一集群运行有项目101,项目101包含任务1、任务2、任务3、任务4,其中,任务2、任务3、任务4的执行依赖任务1的运行结果。当根据第二集群的集群特征确定任务调度策略,将第一集群运行的项目101中的任务2、任务3、任务4调度到第二集群上运行时,可以在任务执行过程中,预先将任务1的运行结果发送给第二集群,以便任务2、任务3、任务4执行时使用。这样的处理方式,无需任务2、任务3、任务4分别向第一集群请求任务1的运行结果,处理效率高、降低了资源浪费。[0092]以上是对本申请实施例所提供的跨集群的任务调度方法进行的详细描述,下面对本申请提供的跨集群的任务调度装置进行详细描述。

[0093]图4是本申请实施例提供的跨集群的任务调度装置示意图,如图4所示,本申请的跨集群的任务调度装置包括:任务特征库建立单元401、策略确定单元402和任务选取单元403,其中:

[0094]所述任务特征库建立单元401用于获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库。

[0095]所述策略确定单元402用于根据第二集群的集群特征确定任务调度策略。

[0096]所述任务选取单元403用于从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。[0097]其中,所述装置还包括:[0098]任务指纹提取单元,用于在获取在第一集群运行的一个或多个项目包含的各任务的任务特征之前,提取在所述第一集群运行的一个或多个项目包含的各任务的任务指纹;所述各任务的任务指纹用于唯一标识各任务;[0099]所述任务特征库建立单元具体用于:

14

CN 107621973 A[0100]

说 明 书

10/13页

获取在第一集群运行的一个或多个项目包含的各任务的任务特征,保存各任务的

任务指纹与所述任务特征的对应关系以建立任务特征库;[0101]其中,所述任务指纹提取单元包括:[0102]处理子单元,用于获取任务的代码,去除所述任务的代码中的变量,获取处理后的任务的代码;

[0103]运算子单元,用于使用第一方法对所述处理后的任务的代码进行运算,获取与所述任务的代码唯一对应的运算结果作为所述任务的任务指纹。[0104]其中,所述策略确定单元包括下述中的任意一个或多个子单元:[0105]第一策略确定子单元,用于当所述第二集群的带宽小于第一预设阈值时,优先调度计算输入比高的任务;其中,所述计算输入比为任务消耗的计算资源量与任务的输入数据量的比值;

[0106]第二策略确定子单元,用于当所述第二集群的磁盘容量小于第二预设阈值时,优先调度计算存储比高的任务;其中,所述计算存储比为任务消耗的计算资源量与任务的中间结果存储数据量的比值;

[0107]第三策略确定子单元,用于当所述第二集群的内存容量小于第三预设阈值时,优先调度内存占用量低的任务。[0108]第四策略确定子单元,用于确定所述第二集群任务运行的高峰时刻和低峰时刻,优先在所述低峰时刻调度所述第一集群的任务。[0109]其中,所述任务选取单元包括候选任务集合生成单元和待调度任务列表生成单元,其中,所述候选任务集合生成单元用于根据所述任务调度策略,从所述任务特征库中选取与所述任务调度策略匹配的任务生成候选任务集合;所述待调度任务列表生成单元具体用于根据所述第二集群的集群特征以及所述候选任务集合中各任务的任务特征确定任务调度规模,从所述候选任务集合中选取与所述任务调度规模匹配的待调度任务,生成待调度任务的列表

[0110]在一些实施方式中,所述待调度任务列表生成单元具体用于:

[0111]根据所述第二集群的计算容量以及所述候选任务集合中各任务消耗的计算资源量确定任务调度规模。

[0112]上述各单元的功能可对应于图2~图3详细描述的上述跨集群的任务调度方法的处理步骤,于此不再赘述。[0113]参见图5,是根据一示例性实施例示出的一种用于任务调度的装置的框图。所述数据处理装置500包括:至少一个处理器501(例如CPU),存储器502和至少一个通信总线503,用于实现这些装置之间的连接通信。处理器501用于执行存储器502中存储的可执行模块,例如计算机程序。存储器502可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器501执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0114]获取在第一集群运行的一个或多个项目包含的各任务的任务特征,根据所述各任务的任务特征建立任务特征库;

[0115]根据第二集群的集群特征确定任务调度策略;

15

CN 107621973 A[0116]

说 明 书

11/13页

从所述任务特征库中选取与所述任务调度策略匹配的任务以生成待调度任务的

列表,所述待调度任务的列表用于在调度任务时根据所述列表将列表中的所述待调度任务从所述第一集群调度到所述第二集群上运行。[0117]其中,所述处理器501具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0118]提取在所述第一集群运行的一个或多个项目包含的各任务的任务指纹;所述各任务的任务指纹用于唯一标识各任务;

[0119]获取在第一集群运行的一个或多个项目包含的各任务的任务特征,保存各任务的任务指纹与所述任务特征的对应关系以建立任务特征库;[0120]根据所述待调度任务集合中的各任务的任务指纹,将所述任务从所述第一集群调度到所述第二集群上运行。[0121]其中,所述处理器501具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0122]获取任务的代码,去除所述任务的代码中的变量,获取处理后的任务的代码;[0123]使用第一方法对所述处理后的任务的代码进行运算,获取与所述任务的代码唯一对应的运算结果作为所述任务的任务指纹。[0124]其中,所述处理器501具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0125]获取第一集群的各任务的输入数据量、消耗的计算资源量、中间结果存储数据量、内存占用量、输出数据量中的任意一种或多种作为任务特征。[0126]其中,所述处理器501具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0127]根据所述第二集群的机型和网络类型确定第二集群的集群特征,所述第二集群的集群特征包括带宽大小、磁盘容量、内存容量和/或计算容量。[0128]其中,所述处理器501具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0129]当所述第二集群的带宽小于第一预设阈值时,优先调度计算输入比高的任务;其中,所述计算输入比为任务消耗的计算资源量与任务的输入数据量的比值;和/或,[0130]当所述第二集群的磁盘容量小于第二预设阈值时,优先调度计算存储比高的任务;其中,所述计算存储比为任务消耗的计算资源量与任务的中间结果存储数据量的比值;和/或,

[0131]当所述第二集群的内存容量小于第三预设阈值时,优先调度内存占用量低的任务;和/或,

[0132]确定所述第二集群任务运行的高峰时刻和低峰时刻,优先在所述低峰时刻调度所述第一集群的任务。[0133]其中,所述处理器501具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0134]根据所述第二集群的计算容量以及所述候选任务集合中各任务消耗的计算资源量确定任务调度规模。

16

CN 107621973 A[0135]

说 明 书

12/13页

参见图8,为本申请实施例提供的一种控制集群服务器示意图。

[0136]一种控制集群服务器800,包括:[0137]获取单元801,用于获取待调度任务列表;[0138]调度单元802,用于根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行。[0139]在一些实施方式中,所述控制集群服务器800还包括:配置单元,用于配置任务运行结果输出策略,所述任务运行结果输出策略用于控制各集群运行的各任务运行结果的输出。

[0140]在一些实施方式中,所述配置单元具体用于配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群。[0141]在一些实施方式中,所述配置单元具体用于配置由所述第二集群存储在所述第二集群运行的各任务的运行结果。[0142]在一些实施方式中,所述配置单元具体用于配置所述第二集群和所述第一集群将各任务的运行结果发送给所述控制集群服务器。[0143]在一些实施方式中,所述控制集群服务器800还包括:[0144]发送单元,用于根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。[0145]参见图9,为本申请实施例提供的另一种控制集群服务器示意图。一种控制集群服务器900包括:至少一个处理器901(例如CPU),存储器902,和至少一个通信总线903,用于实现这些装置之间的连接通信。处理器901用于执行存储器902中存储的可执行模块,例如计算机程序。存储器902可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器901执行所述一个或者一个以上程序包含用于进行以下操作的指令:[0146]获取待调度任务列表;

[0147]根据所述待调度任务的列表,将所述待调度任务从所述第一集群调度到所述第二集群上运行

[0148]其中,所述处理器901具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0149]配置任务运行结果输出策略,所述任务运行结果输出策略用于控制各集群运行的各任务运行结果的输出。[0150]其中,所述处理器901具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0151]配置将在所述第二集群运行的各任务的运行结果发送给所述第一集群。[0152]其中,所述处理器901具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

[0153]配置由所述第二集群存储在所述第二集群运行的各任务的运行结果。[0154]其中,所述处理器901具体还用于执行所述一个或者一个以上程序包含用于进行以下操作的指令:

17

CN 107621973 A[0155]

说 明 书

13/13页

配置所述第二集群和所述第一集群将各任务的运行结果发送给所述控制集群服

务器。

其中,所述处理器901具体还用于执行所述一个或者一个以上程序包含用于进行

以下操作的指令:

[0157]根据任务之间的依赖关系,预先将前一任务的运行结果发送后一任务所在的集群。

[0158]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

[0159]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。[0160]以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

[0156]

18

CN 107621973 A

说 明 书 附 图

1/4页

图1

图2

19

CN 107621973 A

说 明 书 附 图

2/4页

图3

20

CN 107621973 A

说 明 书 附 图

3/4页

图4

图5

图6

21

CN 107621973 A

说 明 书 附 图

4/4页

图7

图8

图9

22

因篇幅问题不能全部显示,请点此查看更多更全内容