任务处理方法、装置、系统及设备与流程

文档序号:30833764发布日期:2022-07-22 22:27阅读:109来源:国知局
任务处理方法、装置、系统及设备与流程

1.本公开涉及大数据技术领域,具体而言,涉及一种任务处理方法、装置、系统、计算机可读存储介质、电子设备及计算机程序产品。


背景技术:

2.目前,大数据处理技术已被广泛熟知和应用,而近年来出现需要针对分布在不同地域集群中的大数据进行处理的应用场景。很多公司或组织需要根据自有的业务类型或地区不同,在不同的地域购买云服务端来组建集群以处理相应的业务,这些不同的集群每天都会产生大量的数据且需要进行统一处理。
3.相关技术中,为了处理这些大量的分布在不同区域集群中的数据,主要采用的处理方法是集中式处理,即先将不同区域集群中的数据传输到一个集群中再对其进行分析处理。但是这样的处理方式并不总是可行的,除了大量原始数据传输会产生的时间和费用成本问题外,还存在的问题是,有些国家或地区为保护数据隐私,会禁止将用户原始数据传输到其它区域。
4.因此,考虑到上述问题的存在,如何更合理的对不同地域的大数据进行处理是一个亟需解决的问题。


技术实现要素:

5.为解决上述技术问题,本技术的实施例提供了一种任务处理方法、装置、系统、计算机可读存储介质、电子设备及计算机程序产品,以对涉及不同地域的大数据集群的任务进行更合理的处理。
6.根据本技术实施例的一个方面,提供了一种任务处理方法,包括:获取待处理任务;对待处理任务进行任务拆分,得到子任务集合;将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果;基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
7.在一些实施例中,数据集群的数量为多个;将子任务集合中的子任务分配给数据集群,包括:获取子任务集合中子任务的任务参数;其中,任务参数是处理子任务需要的数据;基于子任务的任务参数对多个数据集群进行匹配,得到各个子任务对应的待分配数据集群;将子任务分配给子任务对应的待分配数据集群。
8.在一些实施例中,基于子任务的任务参数对多个数据集群进行匹配,得到各个子任务对应的待分配数据集群,包括:获取各个数据集群的元数据;基于子任务的任务参数以及各个数据集群的元数据,检测各个数据集群是否符合子任务的处理条件;将符合子任务的处理条件的数据集群作为子任务对应的待分配数据集群。
9.在一些实施例中,待分配数据集群的数量为多个;将子任务分配给子任务对应的待分配数据集群,包括:分别获取多个待分配数据集群的当前数据处理能力值;基于当前数据处理能力值对多个待分配数据集群进行排序,得到排序结果;基于排序结果确定目标待
分配数据集群,将子任务分配给目标待分配数据集群。
10.在一些实施例中,在将子任务集合中的子任务分配给数据集群之前,方法还包括:接收数据集群发送的注册请求;基于注册请求,向数据集群发送数据集群对应的身份证书;接收数据集群发送的通信连接请求,通信连接请求中包含数据集群对应的待认证的身份证书;对待认证的身份证书进行认证,若认证通过,则与数据集群建立通信连接。
11.在一些实施例中,在将子任务集合中的子任务分配给数据集群之后,方法还包括:获取数据集群发送的故障信息,故障信息中携带有数据集群中存在处理故障的子任务的处理信息;根据处理信息确定造成子任务处理故障触发产生故障信息的原因信息;基于原因信息获取存在故障的子任务对应的备用数据集群;将存在故障的子任务分配给备用数据集群,以使备用数据集群重新处理存在故障的子任务。
12.在一些实施例中,数据集群的数量为多个;基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果,包括:获取数据集群反馈的子任务处理结果对应的子任务,以修改子任务的任务状态为完成状态;若检测到子任务集合中的所有子任务的任务状态均为完成状态,则对各个数据集群反馈的子任务处理结果进行汇聚,得到目标任务处理结果。
13.根据本技术实施例的一个方面,提供了一种任务处理装置,包括:任务获取模块,配置为获取待处理任务;任务拆分模块,配置为对待处理任务进行任务拆分,得到子任务集合;任务分配模块,配置为将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果;结果获取模块,配置为基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
14.根据本技术实施例的一个方面,提供了一种任务处理系统,包括任务处理控制平台以及多个数据集群,任务处理控制平台通过中间代理节点与数据集群通信连接;其中:任务处理控制平台用于获取待处理任务,对待处理任务进行任务拆分,得到子任务集合,并将子任务集合中的子任务分别分配给数据集群;数据集群用于处理子任务,得到子任务对应的子任务处理结果,并将子任务处理结果发送给任务处理控制平台;任务处理控制平台还用于基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
15.根据本技术实施例的一个方面,提供了一种电子设备,包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以处理如上的任务处理方法中的步骤。
16.根据本技术实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当计算机可读指令被计算机的处理器处理时,使计算机处理如上的任务处理方法中的步骤。
17.在本技术的实施例提供的技术方案中,通过获取待处理任务;对待处理任务进行任务拆分,得到子任务集合;将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果,进而不用将各个数据集群的数据进行集中,通过将待处理任务拆分为子任务,将子任务下发至数据集群进行本地计算,使算力下沉至靠近数据的位置;然后基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果,使数据集群只需上传子任务处理结果,然后对各个子任务处理结果汇总即可得到目标任务处理结果,减少了各个数据集群进行数据传输的开销,进而提高了任务完成
的效率。
18.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
19.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
20.图1是本技术涉及的实施环境的示意图;
21.图2是本技术的一示例性实施例示出的任务处理方法的流程图;
22.图3是本技术一示例性实施例中获取待处理任务的示意图;
23.图4是本技术的另一示例性实施例示出的任务处理方法的流程图;
24.图5是本技术的另一示例性实施例示出的任务处理方法的流程图;
25.图6是本技术的另一示例性实施例示出的任务处理方法的流程图;
26.图7是本技术的一示例性实施例示出的任务处理系统的示意图;
27.图8是本技术的一示例性实施例示出的任务处理装置的框图;
28.图9示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
具体实施方式
29.这里将详细地对示例性实施例处理说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
30.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
31.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序处理。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际处理的顺序有可能根据实际情况改变。
32.在本技术中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
33.近年来,大数据处理已经被很多人所熟知,而随之则出现了一种新的应用场景,即跨地域大数据处理,传统的大数据处理针对的是单一集群内的数据,而跨地域大数据处理则是对分布在不同地域集群中的大数据进行处理。随着互联网和全球化的发展,很多公司或组织会根据自有的业务类型或面向地区不同,在不同的地域组建服务端集群来处理相应的业务。这些集群中的业务作业每天都会产生大量的数据,这些数据可能是来自终端设备、传感器等不同来源,而对这些大量数据的分析处理则是每天都需要进行的操作。例如,公司
需要通过分析各个集群中的网络流量来检测是否存在网络攻击,而这样的工作必须要对所有集群中的日志数据进行统一分析才能得到更加精确的结果。
34.现在的大数据处理系统基本为集中处理模式,即对跨地域的数据进行处理时,必须首先把各个集群的数据集中到一个集群中。但是这样的操作必定会产生集群之间大量的数据传输,随之产生的是时间代价和费用成本,即使不考虑时间和费用因素,现在很多国家或地区为了保护数据隐私,会禁止这种跨地域的数据传输。
35.基于此,为了保证对涉及多个地域的数据集群的任务进行处理的效率,本技术的实施例提出一种任务处理方法、装置、系统、计算机可读存储介质、电子设备及计算机程序产品。
36.下面对本技术实施例所提供的任务处理方法进行说明,其中,图1是本技术中任务处理方法涉及的一种实施环境的示意图。如图1所示,该实施环境包括终端110和服务端120,终端110和服务端120可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
37.终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端110可以泛指多个终端中的一个,本实施例仅以终端110来举例说明。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量,此时上述任务处理方法的实施环境还包括其他终端。本技术实施例对终端的数量和设备类型不加以限定。
38.服务端120可以是独立的物理服务端,也可以是多个物理服务端构成的服务端集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务端。服务端120用于为终端110运行的应用程序提供后台服务。
39.可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(hyper text mark-up language,html)、可扩展标记语言(extensible markup language,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(secure socket layer,ssl)、传输层安全(transport layer security,tls)、虚拟专用网络(virtual private network,vpn)、网际协议安全(internet protocol security,ipsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
40.可选的,服务端120承担主要任务处理工作,终端110承担次要任务处理工作;或者,服务端120承担次要任务处理工作,终端110承担主要任务处理工作;或者,服务端120或终端110分别可以单独承担任务处理工作。
41.示例性的,终端110向服务端120发送任务处理指令,服务端120接收到终端110发送的任务处理指令,获取待处理任务;服务端120对待处理任务进行任务拆分,得到子任务集合;将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果;基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标
任务处理结果。
42.请参阅图2,图2是本技术的一示例性实施例示出的任务处理方法的流程图。该任务处理方法可以应用于图1所示的实施环境,并由该实施环境中的服务端120具体处理。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体处理,本实施例不对该方法所适用的实施环境进行限制。
43.下面以服务端作为具体的处理主体来对本技术实施例提出的任务处理方法进行详细介绍。
44.如图2所示,在一示例性的实施例中,任务处理方法至少包括步骤s210至步骤s240,详细介绍如下:
45.步骤s210、获取待处理任务。
46.其中,待处理任务是指当前待处理的任务数据。
47.可以理解的是,服务端可能存在多个任务,可以是从该多个任务中随机确定一个任务作为待处理任务。可选的,可以根据任务提交的时间顺序,从多个任务中确定提交时间最早的任务作为待处理任务;可选的,可以根据多个任务中任务的优先级排列顺序,从多个任务中确定优先级最高的任务作为待处理任务,本技术对此不做限制。
48.示例性的,请参阅图3,图3为本技术一示例性实施例中获取待处理任务的示意图。如图3所示,服务端提供有用户交互界面,用户交互界面通过检测用户的任务配置操作,得到用户输入的任务数据。例如,可以是用户交互界面上设置有文件上传组件,用户通过触发文件上传组件将包含有任务数据的文件进行上传,以根据用户上传的文件得到任务数据,如包含有任务内容的程序代码文件、包含有任务处理流程的配置文件等。例如,还可以是用户交互界面上设置有任务数据配置组件,以通过检测用户与该任务配置组件的交互操作得到任务数据,如任务数据配置组件包括任务类型配置组件、任务优先级配置组件等,用户通过任务类型配置组件选择该任务的任务类型,通过任务优先级配置组件设置该任务的优先级。可以理解的是,本技术不对任务数据的获取方式进行限制,如任务数据还可以存储在数据库中,通过查询数据库得到任务数据。进一步的,将得到的任务数据输入任务队列中,服务端从任务队列包含的n个任务数据中选择当前待处理的任务数据,以得到待处理任务。
49.示例性的,服务端可以在检测到预设事件被触发时,主动获取任务数据,如检测到当前时间到达预设时间时,去数据库中获取任务数据;服务端还可以是在接收到任务处理请求时,获取该任务处理请求对应的任务数据,本技术对此不做限制。
50.步骤s220、对待处理任务进行任务拆分,得到子任务集合。
51.其中,通过任务拆分操作将一个完整的待处理任务细化为多个子任务,该多个子任务组成子任务集合。
52.示例性的,可以根据数据集群的资源情况对待处理任务进行拆分。例如,根据各个数据集群当前的数据结构信息,将待处理任务进行任务拆分,得到子任务集合。如待处理任务为统计第一类型数据以及第二类型数据的数量,根据数据集群a的数据结构信息获知数据集群a中存在第一类型数据,根据数据集群b的数据结构信息获知数据集群b中存在第二类型数据,则需要将待处理任务细化为第一子任务和第二子任务,其中,第一子任务为统计第一类型数据的数量,第二子任务为统计第二类型数据的数量。
53.示例性的,还可以根据待处理任务的工作流信息对该待处理任务进行拆分,工作
流信息是指待处理任务中各个步骤之间的处理规则。其中,工作流信息可以是根据用户的工作流输入操作得到的,也可以是服务端对任务数据进行分析得到的。可以将每个步骤均细化为一个子任务,也可以根据各个步骤之间的依赖关系,将多个步骤细化为一个子任务。
54.示例性的,还可以结合数据集群的资源情况以及待处理任务的工作流信息对该待处理任务进行拆分,本技术对此不做限制。
55.步骤s230、将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果。
56.其中,数据集群存储有处理待处理任务时所需要使用的数据,而由于待处理任务所需要使用的数据可能分别存储于多个数据集群中,需要结合这些数据集群中包含的待处理任务所需要使用的数据,才能对待处理任务进行处理。因此,为了避免这些数据集群将包含的待处理任务所需要使用的数据进行集中上传,将待处理任务细化为多个子任务,以将子任务下发给该子任务对应的数据集群中进行本地计算。
57.可以理解的是,子任务集合中的多个子任务可以分配给同一数据集群,那么同时需要向该数据集群发送该多个子任务相应配置的处理规则,即发送每个子任务之间的处理逻辑信息,以使该数据集群根据该多个子任务之间的处理规则处理该多个子任务。
58.示例性的,可以获取子任务处理时所需要的数据,根据子任务处理时所需要的数据判断各个数据集群是否符合子任务处理条件,若数据集群存在该子任务处理时所需要的数据,则表明该数据集群符合该子任务的子任务处理条件,即将该子任务分配给该数据集群。
59.示例性的,可以有多个数据集群符合同一子任务的子任务处理条件,可以对该多个数据集群进行排序,以根据排序结果选择该子任务最终匹配的数据集群,以将该子任务发送给该子任务最终匹配的数据集群。
60.示例性的,基于上述实施例,待处理任务的数量可以为多个,服务端可以并行对多个待处理任务进行处理,即得到多个待处理任务的子任务集合,每个子任务集合中的子任务均属于同一待处理任务,可以根据子任务集合所属待处理任务的不同向各个子任务集合添加任务标识,进而区分不同待处理任务的子任务集合。然后,同时根据多个子任务集合中子任务的优先级对各个子任务进行分配,以使服务端可以同时处理多个待处理任务。可以通过根据每个待处理任务中子任务的优先级顺序,依次处理每个待处理任务中优先级较高的子任务,相对于依次处理每个待处理任务的处理时间,同时对多个待处理任务的子任务进行处理的整体处理时间更短,提高了整体任务处理效率。
61.进一步的,数据集群对接收到的子任务进行处理,得到子任务处理结果。可选的,数据集群可以对子任务进行再次细化,以将细化后的子任务分别分配给数据集群中的各个计算设备进行处理,然后将各个计算设备进行处理后的处理结果进行汇总,得到子任务处理结果。
62.步骤s240、基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
63.其中,目标任务处理结果为待处理任务对应的任务处理结果,其根据待处理任务的每个子任务对应的子任务处理结果得到。
64.示例性的,当检测到待处理任务对应的所有子任务均已经得到子任务处理结果
时,则对所有子任务处理结果进行汇聚,并对汇聚后的子任务处理结果进行计算,以得到目标任务处理结果,并对该目标任务处理结果进行存储。
65.由于对跨地域的数据进行处理时,需要首先把各个集群的数据集中到一个集群中,导致集群之间存在大量的数据传输,进而提高了数据传输的时间成本以及费用成本,因此,本技术实施例通过将待处理任务拆分为子任务,以将子任务分配给该子任务对应的数据集群,以使该数据集群处理该子任务,得到子任务处理结果,进而不用将各个数据集群的数据进行集中,通过将子任务下发至数据集群进行本地计算,使算力下沉至靠近数据的位置;然后基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果,使数据集群只需上传子任务处理结果,然后对各个子任务处理结果汇总即可得到目标任务处理结果,减少了各个数据集群进行数据传输的开销,进而提高了任务完成的效率。
66.请参阅图4,在一示例性的实施例中,数据集群的数量为多个,任务处理方法包括步骤s410至步骤s460,详细介绍如下:
67.步骤s410、获取待处理任务。
68.其中,步骤s410的具体实施方式与图2中的步骤s210一致,在此不做赘述。
69.步骤s420、对待处理任务进行任务拆分,得到子任务集合。
70.其中,步骤s420的具体实施方式与图2中的步骤s220一致,在此不做赘述。
71.步骤s430、获取子任务集合中子任务的任务参数;其中,任务参数是处理子任务需要的数据。
72.任务参数是指处理子任务时需要的数据,例如,子任务为统计第一类型数据的数量,则该子任务的任务参数为第一类型数据。
73.可以理解的是,子任务的任务参数包括直接数据和间接数据,直接数据是指服务端可以直接获取的数据,间接数据是指服务端不可以直接获取的数据。例如,服务端可以直接获取的数据可以是服务端本地数据库中的数据,也可以是用户输入的数据,也可以是对服务端本地数据库中的数据或者用户输入的数据进行计算得到的数据等,即不需要对其它数据集群执行数据获取操作就可以得到的数据;服务端不可以直接获取的数据则可以是其它数据集群中的数据,也可以是对其它数据集群中的数据进行计算得到的数据等,即需要对其它数据集群执行数据获取操作才可以得到的数据。
74.示例性的,每个子任务对应设置有任务参数表,将每个子任务的任务参数分别添加至每个子任务对应的任务参数表中,并对任务参数表中的任务参数进行标记,以通过标记表明该标记对应的任务参数为直接数据或者为间接数据。
75.步骤s440、基于子任务的任务参数对多个数据集群进行匹配,得到各个子任务对应的待分配数据集群。
76.其中,基于子任务的任务参数对多个数据集群进行匹配的目的是为了检测数据集群是否符合该子任务的处理条件,若数据集群符合该子任务的处理条件,则将该数据集群作为该子任务的待分配数据集群;若数据集群不符合该子任务的处理条件,则跳过该数据集群,以对下一个数据集群进行识别。
77.可选的,在上述示例性的实施例中,本技术实施例还可采用如下所述的方法实现步骤s440,详情如下述:获取各个数据集群的元数据;基于子任务的任务参数以及各个数据集群的元数据,检测各个数据集群是否符合子任务的处理条件;将符合子任务的处理条件
的数据集群作为子任务对应的待分配数据集群。
78.其中,元数据为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
79.例如,服务端存储有与该服务端通信连接的各个数据集群的元数据信息,可以是与服务端通信连接的数据集群周期性向服务端上报自身当前的元数据,以使服务端根据各个数据集群上报的元数据对存储的各个数据集群的元数据信息进行更新。然后,服务端可以根据本地存储的各个数据集群的元数据信息获取各个数据集群的元数据。
80.例如,服务端可以在对子任务进行分配时,向与该服务端通信连接的各个数据集群发送元数据获取请求,以使各个数据集群根据元数据获取请求向服务端上报自身当前的元数据,进而服务端得到各个数据集群反馈的元数据。
81.进一步的,根据子任务的任务参数获取该子任务对应的间接数据,以根据间接数据的数据信息匹配各个数据集群的元数据,若数据集群存储有该子任务全部的间接数据则表明该数据集群符合子任务的处理条件,将符合子任务的处理条件的数据集群作为子任务对应的待分配数据集群。
82.步骤s450、将子任务分配给子任务对应的待分配数据集群,以使待分配数据集群处理子任务,得到子任务对应的子任务处理结果。
83.例如,服务端根据子任务生成任务处理请求,以将该任务处理请求下发至该子任务对应的待分配数据集群,进而该待分配数据集群根据任务处理请求处理该子任务。其中,任务处理请求中可以包含有至少一个子任务以及子任务之间的处理规则,任务处理请求中还可以包含有子任务的优先级、子任务的处理时间等信息,本技术对此不做限制。
84.可选的,在上述示例性的实施例中,待分配数据集群的数量为多个,本技术实施例还可采用如下所述的方法实现步骤s450,详情如下述:分别获取多个待分配数据集群的当前数据处理能力值;基于当前数据处理能力值对多个待分配数据集群进行排序,得到排序结果;基于排序结果确定目标待分配数据集群,将子任务分配给目标待分配数据集群。
85.其中,当前数据处理能力值是指待分配数据集群处理任务的能力,针对同一子任务,待分配数据集群的当前数据处理能力值越高,则表明该待分配数据集群完成该子任务所需要的时间越短,反之待分配数据集群的当前数据处理能力值越低,则表明该待分配数据集群完成该子任务所需要的时间越长。
86.示例性的,根据各个待分配数据集群的资源使用情况、各个待分配数据集群的数据传输时间、各个待分配数据集群的数据传输费用等信息,计算各个待分配数据集的当前数据处理能力值。其中,数据集群的资源使用情况是指数据集群的空闲资源数量,对于同一子任务来说,数据集群的空闲资源数量越小,则该数据集群完成该子任务所需要的时间越长,反之数据集群的空闲资源数量越大,则该数据集群完成该子任务所需要的时间越短。数据集群的数据传输时间是指该数据集群与服务端之间进行一次数据传输时所需要花费的时间。数据集群的数据传输费用是指该数据集群与服务端之间进行一次数据传输时所需要花费的费用。
87.本技术实施例中,可以对各个数据集群的资源使用情况、各个数据集群的数据传输时间、各个数据集群的数据传输费用等信息进行加权计算,以得到各个待分配数据集的当前数据处理能力值。其中,进行加权计算的权值可以是预先设定的,也可以是根据子任务
进行动态确定的,如根据子任务的规定完成时间、优先级等信息进行动态确定。
88.得到每个待分配数据集的当前数据处理能力值后,基于当前数据处理能力值对多个待分配数据集群进行排序,得到排序结果,以基于排序结果确定目标待分配数据集群,将子任务分配给目标待分配数据集群。例如,可以将排序结果中当前数据处理能力值最高的待分配数据集作为目标待分配数据集群。
89.示例性的,还可以根据子任务的优先级、子任务的计算量以及每个待分配数据集的当前数据处理能力值计算子任务匹配值,以将该子任务的子任务匹配值最高的待分配数据集作为目标待分配数据集群。其中,子任务的优先级是指子任务的紧急程度,例如,子任务的优先级越高,则代表该子任务越紧急,需要将该子任务分配给空闲资源更多的数据集群,反之子任务的优先级越低,则代表该子任务越不紧急,可以将该子任务分配给空闲资源更少的数据集群。子任务的计算量是指完成子任务所需要的计算资源,对于同一数据集群来说,子任务的计算量越大,则该数据集群完成该子任务所需要的时间越长,反之子任务的计算量越小,则该数据集群完成该子任务所需要的时间越短。
90.本技术实施例中,可以对子任务的优先级、子任务的计算量以及每个待分配数据集的当前数据处理能力值进行加权计算,以得到各个待分配数据集的子任务匹配值。其中,进行加权计算的权值可以是预先设定的,也可以是根据子任务进行动态确定的,如根据子任务的规定完成时间、优先级等信息进行动态确定。
91.通过上述综合考虑各个子任务的信息以及各个数据集群的信息,以保证将每个子任务分配给适合的数据集群,以保证每个待处理任务的完成效率。
92.步骤s460、基于待分配数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
93.其中,步骤s460的具体实施方式与图2中的步骤s240一致,在此不做赘述。
94.请参阅图5,在一示例性的实施例中,数据集群的数量为多个,任务处理方法包括步骤s510至步骤s580,详细介绍如下:
95.步骤s510、接收数据集群发送的注册请求,并基于注册请求,向数据集群发送数据集群对应的身份证书。
96.其中,注册请求中可以携带有该数据集群的中央处理器(central processing unit,cpu)信息、内存信息等,数据集群通过注册请求向服务端发送该数据集群的资源信息;身份证书用于唯一标识该数据集群的身份信息。
97.示例性的,可以是数据集群与服务端进行第一次通信时,该数据集群向服务端发送注册请求,也可以是数据集群需要周期性向服务端发送注册请求,本技术对此不做限制。
98.本技术实施例中,服务端在接收到数据集群的注册请求后,为该数据集群生成唯一的身份证书,将该身份证书发送给该数据集群。
99.其中,可以将加密后的身份证书发送给数据集群,加密所使用的加密方法包括但不限于对称加密方法、非对称加密方法等,本技术对此不做限制。可以理解的是,需要加密方法对应的解密方法才能对加密后的身份证书进行解密,以通过解密得到身份证书,以提高信息传输的安全性。
100.步骤s520、接收数据集群发送的通信连接请求,通信连接请求中包含数据集群对应的待认证的身份证书,对待认证的身份证书进行认证。
101.其中,数据集群发送的通信连接请求用于向服务端请求建立通信连接,以在建立通信连接后,数据集群与服务端进行数据传输。因此,通信连接请求中包含待认证的身份证书,以使服务端对该待认证的身份证书进行认证。
102.步骤s530、判断认证是否通过,若认证通过,则与数据集群建立通信连接,并执行步骤s540;若认证不通过,则结束。
103.示例性的,服务端对数据集群的待认证的身份证书进行认证,若认证通过,则表明该数据集群可以信任,则与该数据集群建立通信连接;若认证不通过,则表明该数据集群不可以信任,则拒绝与该数据集群建立通信连接。
104.可选的,可以是服务端根据预设算法对身份证书进行计算,以判断计算得到的结果是否符合预设规则,进而判断待认证的身份证书对应的数据集群是否可信,其中,预设算法是服务端与可信任的数据集群共同约定的算法;还可以是服务端的数据库存储有可以信任的数据集群的身份证书,通过查询数据库判断待认证的身份证书对应的数据集群是否可信,本技术对此不做限制。
105.步骤s540、服务端与各个数据集群进行元数据同步。
106.示例性的,可以是与服务端通信连接的数据集群周期性向服务端上报自身当前的元数据,以使服务端根据各个数据集群上报的元数据对存储的各个数据集群的元数据信息进行更新。然后,服务端可以根据本地存储的各个数据集群的元数据信息获取各个数据集群的元数据。还可以是服务端在对子任务进行分配时,向与该服务端通信连接的各个数据集群发送元数据获取请求,以使各个数据集群根据元数据获取请求向服务端上报自身当前的元数据,进而服务端得到各个数据集群反馈的元数据,本技术对此不做限制。
107.步骤s550、获取待处理任务。
108.其中,步骤s550的具体实施方式与图2中的步骤s210一致,在此不做赘述。
109.步骤s560、对待处理任务进行任务拆分,得到子任务集合,将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果。
110.其中,步骤s560的具体实施方式与图2中的步骤s220及步骤s230一致,在此不做赘述。
111.步骤s570、获取数据集群反馈的子任务处理结果对应的子任务,以修改子任务的任务状态为完成状态。
112.服务端的子任务集合中每个子任务均对应有任务状态,任务状态包括但不限于未分配状态、未完成状态、完成状态等,子任务为未分配状态则表明该子任务还未分配给数据集群,子任务为未完成状态则表明该子任务已经分配给数据集群但该数据集群还未反馈子任务处理结果,子任务为完成状态则表明该子任务已经分配给数据集群且该数据集群已经反馈子任务处理结果。
113.步骤s580、判断子任务集合中的所有子任务的任务状态是否均为完成状态,若是均为完成状态,则对各个数据集群反馈的子任务处理结果进行汇聚,得到目标任务处理结果;若不是均为完成状态,则继续执行步骤s560。
114.判断待处理任务的所有子任务是否均已经处理完成。若均已经处理完成,则将各个数据集群反馈的子任务处理结果进行汇聚,得到目标任务处理结果。例如,每个待处理任务均对应设置有子任务处理结果集合,将各个数据集群反馈的子任务处理结果添加至该子
任务处理结果集合,其中,若子任务处理结果集合中的多个子任务处理结果之间还需要进行计算操作,则进行相应的计算,得到计算后的目标任务处理结果。可选的,可以是每接收到一次数据集群反馈的子任务处理结果,则进行一次计算,也可以是在所有子任务均已经处理完成后,进行一次计算,本技术对此不做限制。
115.若存在任一子任务不为完成状态,则继续执行步骤s560,直至所有子任务均为完成状态,得到目标任务处理结果,以对目标任务处理结果进行存储或用户展示该目标任务处理结果。
116.请参阅图6,在一示例性的实施例中,任务处理方法包括步骤s610至步骤s680,详细介绍如下:
117.步骤s610、获取待处理任务。
118.其中,步骤s610的具体实施方式与图2中的步骤s210一致,在此不做赘述。
119.步骤s620、对待处理任务进行任务拆分,得到子任务集合。
120.其中,步骤s620的具体实施方式与图2中的步骤s220一致,在此不做赘述。
121.步骤s630、将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果。
122.其中,步骤s630的具体实施方式与图2中的步骤s230一致,在此不做赘述。
123.步骤s640、获取数据集群发送的故障信息,故障信息中携带有数据集群中存在处理故障的子任务的处理信息。
124.其中,故障信息可以是该子任务的处理过程中的日志信息,以反映该子任务在数据集群中的具体处理情况。
125.示例性的,数据集群可以每间隔预设时间便向服务端发送一次心跳数据包,可以将该数据集群中各个子任务的完成状态等信息携带在该心跳数据包中,其中,子任务的完成状态包括但不限于子任务的完成进度信息、子任务的故障信息等,以使服务端可以对各个子任务的处理情况进行实时监控。
126.示例性的,还可以是,数据集群可以每间隔预设时间便向中间代理节点发送一次心跳数据包,可以将该数据集群中各个子任务的完成状态等信息携带在该心跳数据包中,以使该数据集群的中间代理节点对本地的数据集群中的各个子任务的处理情况进行实时监控,进而中间代理节点在监控到存在处理故障的子任务时,再向服务端发送故障信息,以减少数据集群与服务端之间的信令交互,减少数据传输成本。
127.步骤s650、根据故障信息确定造成子任务处理故障触发产生故障信息的原因信息。
128.其中,原因信息是指导致子任务处理过程中出现故障的条件。
129.示例性的,可以对故障信息进行关键词识别,得到故障信息对应的关键词信息,以根据关键词信息对该故障信息进行故障分类,确定造成子任务处理故障触发产生故障信息的原因信息。
130.可选的,包括但不限于如下原因信息:
131.(1)任务处理超时。在各个子任务执行过程中,每一个子任务的处理时间都是一定的,为了能够保证子任务不会因为异常原因无限期的执行下去,使得用户无法及时的获取到任务的异常状态,会为每个任务配置超时时间,如果子任务不能在指定时间内完成,便认
为是失败的。作业运行超时的原因有很多种,可能是由于数据集群中计算设备本身软件不稳定,导致某一个子任务迟迟无法结束,也有可能是因为数据集群中计算设备的计算资源不足,导致某个子任务花费了比平时更长的时间来完成。当出现任务处理超时,故障信息中包含有明显的特征词汇,比如build timed out,marking the build as failed等;
132.(2)运行环境异常。一个子任务能够正常的处理一般都对其所运行的环境有一定的要求。比如,mapreduce作业依赖与hadoop的运行环境,所以在作业的执行节点必须安装有hadoop程序。通常一个子任务的上线,都需要对子任务的各个运行节点进行指定的配置,包括安装一些程序,添加环境变量,添加本地依赖库,向dba申请运算节点对某一些数据库的访问权限等等。可是由于某些原因执行节点的环境可能会出现异常,比如运维人员新增加了运行节点却遗漏了某些配置,或是由于程序bug导致某些依赖文件被误删,此时作业运行就会出错。对于本地依赖库缺失或是环境变量缺失的情况,通常会导致作业无法找到指定的文件或是程序路径而出错,则故障信息中包含有明显的特征词汇,比如problem accessing file,command not found等。而对于例如集群访问权限或是数据库访问权限的缺失,则故障信息中包含有明显的特征词汇,比如not permited,access denied等。
133.(3)程序bug。新上线的子任务可能会由于测试不充分而存在bug,在处理的过程中可能出现失败情况。而已经在线上运行的子任务也有可能因为需求的变更导致程序被修改,引入了bug,使得原本能够正常运行的子任务也出现了失败的情况。这种情况下,子任务一般都会由于程序抛出了runtime exception而异常中止,故障信息中一般都会打印出异常的堆栈信息。
134.步骤s660、基于原因信息获取存在故障的子任务对应的备用数据集群。
135.其中,可以采用图2中步骤s230的方法选取该存在故障的子任务对应的初始备用数据集群,然后根据原因信息对初始备用数据集群进行筛选,以得到该存在故障的子任务对应的备用数据集群。例如,若原因信息是表明由于数据集群中计算设备的计算资源不足导致子任务处理超时,则获取计算资源满足该存在故障的子任务的数据集群作为备用数据集群;例如,若原因信息是表明由于数据集群中计算设备的运行环境错误导致子任务处理失败,则获取运行环境满足该存在故障的子任务的数据集群作为备用数据集群。
136.步骤s670、将存在故障的子任务分配给备用数据集群,以使备用数据集群重新处理存在故障的子任务。
137.将该存在故障的子任务分配给备用数据集群,以使备用数据集群重新处理存在故障的子任务,进而及时对待处理任务中存在异常的子任务进行处理,保证待处理任务的处理进度。
138.步骤s680、基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
139.其中,步骤s680的具体实施方式与图2中的步骤s240一致,在此不做赘述。
140.请参阅图7,图7是本技术的一示例性实施例示出的任务处理系统的示意图。该任务处理系统包括任务处理控制平台以及多个数据集群,任务处理控制平台通过中间代理节点与数据集群通信连接。其中:任务处理控制平台用于获取待处理任务,对待处理任务进行任务拆分,得到子任务集合,并将子任务集合中的子任务分别分配给数据集群;数据集群用于处理子任务,得到子任务对应的子任务处理结果,并将子任务处理结果发送给任务处理
控制平台;任务处理控制平台还用于基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
141.如图7所示,任务处理控制平台配置于服务端中,包括用户交互层、核心层,用户交互层用于向用户提供用户交互界面;核心层用于执行任务处理方法。其中,核心层包括任务调度模块、元数据管理模块、安全认证模块以及资源注册模块,任务调度模块用于待处理任务的任务拆分、子任务的分配、子任务的监控、目标任务处理结果的获取等,保证待处理任务的子任务按照预定的顺序和流程正确执行,及时发现任务执行的异常;元数据管理模块用于存储各个数据集群的元数据,以保存各个数据集群的数据目录及数据详情;安全认证模块用于对各个数据集群进行身份认证,确保通信信道的可信和安全;资源注册模块用于保存各个数据集群的资源信息,如各个数据集群的cpu信息、内存信息等。
142.本技术实施例中,数据集群通过中间代理节点与任务处理控制平台进行通信连接,数据集群中包含有计算资源与存储资源。其中,中间代理节点可以是agent代理,包括大数据交互层、工作流引擎、控制交互层,大数据交互层用于与本地的数据集群进行通信;控制交互层用于与任务处理控制平台进行通信;工作流引擎对接收到的子任务进行处理,如将子任务分配给本地的数据集群中具体的计算设备、将子任务进行进一步拆分、对子任务的执行情况进行监控等。通过引入中间代理节点,便于对各个数据集群进行管理,并通过中间代理节点对数据集群与任务处理控制平台之间的数据传输进行整合处理,可以进一步减少数据集群与任务处理控制平台之间的数据传输,并降低了各个数据集群间的耦合性。
143.在一些实施方式中,任务处理控制平台还可以包括大数据交互层,以通过大数据交互层与本地的数据集群进行通信。
144.图8是本技术的一示例性实施例示出的任务处理装置的框图。该任务处理装置可以应用于图1所示的实施环境。该任务处理装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
145.如图8所示,该示例性的任务处理装置800包括:任务获取模块810、任务拆分模块820、任务分配模块830和结果获取模块840。具体的:
146.任务获取模块810,配置为获取待处理任务。
147.任务拆分模块820,配置为对待处理任务进行任务拆分,得到子任务集合。
148.任务分配模块830,配置为将子任务集合中的子任务分配给数据集群,以使数据集群处理子任务,得到子任务对应的子任务处理结果。
149.结果获取模块840,配置为基于数据集群反馈的子任务处理结果,得到待处理任务对应的目标任务处理结果。
150.在上述示例性的实施例基础上,任务分配模块830还包括任务参数获取单元、数据集群匹配单元、分配单元。具体的:
151.任务参数获取单元,配置为获取子任务集合中子任务的任务参数;其中,任务参数是处理子任务需要的数据。
152.数据集群匹配单元,配置为基于子任务的任务参数对多个数据集群进行匹配,得到各个子任务对应的待分配数据集群。
153.分配单元,配置为将子任务分配给子任务对应的待分配数据集群。
154.在上述示例性的实施例基础上,数据集群匹配单元还包括元数据获取单元、数据
检测单元和待分配数据集群获取单元。具体的:
155.元数据获取单元,配置为获取各个数据集群的元数据。
156.数据检测单元,配置为基于子任务的任务参数以及各个数据集群的元数据,检测各个数据集群是否符合子任务的处理条件。
157.待分配数据集群获取单元,配置为将符合子任务的处理条件的数据集群作为子任务对应的待分配数据集群。
158.在上述示例性的实施例基础上,待分配数据集群的数量为多个;分配单元还包括当前数据处理能力值获取单元、排序单元和目标分配单元。具体的:
159.当前数据处理能力值获取单元,配置为分别获取多个待分配数据集群的当前数据处理能力值。
160.排序单元,配置为基于当前数据处理能力值对多个待分配数据集群进行排序,得到排序结果。
161.目标分配单元,配置为基于排序结果确定目标待分配数据集群,将子任务分配给目标待分配数据集群。
162.在上述示例性的实施例基础上,任务处理装置800还包括注册请求接收单元、身份证书发送单元、连接请求接收单元和通信连接建立单元。具体的:
163.注册请求接收单元,配置为接收数据集群发送的注册请求。
164.身份证书发送单元,配置为基于注册请求,向数据集群发送数据集群对应的身份证书。
165.连接请求接收单元,配置为接收数据集群发送的通信连接请求,通信连接请求中包含数据集群对应的待认证的身份证书。
166.通信连接建立单元,配置为对待认证的身份证书进行认证,若认证通过,则与数据集群建立通信连接。
167.在上述示例性的实施例基础上,任务处理装置800还包括故障信息获取单元、原因信息确认单元、备用数据集群获取单元和故障处理单元。具体的:
168.故障信息获取单元,配置为获取数据集群发送的故障信息,故障信息中携带有数据集群中存在处理故障的子任务的处理信息。
169.原因信息确认单元,配置为根据故障信息确定造成子任务处理故障触发产生故障信息的原因信息。
170.备用数据集群获取单元,配置为基于原因信息获取存在故障的子任务对应的备用数据集群。
171.故障处理单元,配置为将存在故障的子任务分配给备用数据集群,以使备用数据集群重新处理存在故障的子任务。
172.在上述示例性的实施例基础上,数据集群的数量为多个;结果获取模块840还包括状态修改单元和目标任务处理结果获取单元。具体的:
173.状态修改单元,获取数据集群反馈的子任务处理结果对应的子任务,以修改子任务的任务状态为完成状态。
174.目标任务处理结果获取单元,配置为若检测到子任务集合中的所有子任务的任务状态均为完成状态,则对各个数据集群反馈的子任务处理结果进行汇聚,得到目标任务处
理结果。
175.需要说明的是,上述实施例所提供的任务处理装置与上述实施例所提供的任务处理方法属于同一构思,其中各个模块和单元处理操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的任务处理装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处不对此进行限制。
176.图9示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。
177.需要说明的是,图9示出的电子设备的计算机系统900仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
178.如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930、显示单元940。
179.其中,存储单元存储有程序代码,程序代码可以被处理单元910执行,使得处理单元910执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
180.存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)921和/或高速缓存存储单元922,还可以进一步包括只读存储单元(rom)923。
181.存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块925包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
182.总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
183.电子设备900也可以与一个或多个外部设备970(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或应用程序模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
184.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机应用程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在该计算机程序被处理单元910执行时,执行本技术的系统中限定的各种功能。
185.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读
存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
186.描述于本技术实施例中所涉及到的单元可以通过应用程序的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
187.本技术的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的任务处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
188.本技术的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的任务处理方法。
189.上述内容,仅为本技术的较佳示例性实施例,并非用于限制本技术的实施方案,本领域普通技术人员根据本技术的主要构思和精神,可以十分方便地进行相应的变通或修改,故本技术的保护范围应以权利要求书所要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1