一种任务的调度方法、装置、设备及存储介质
技术领域
本申请涉及机器学习
技术领域
,具体而言,涉及一种任务的调度方法、装置、设备及存储介质。背景技术
随着人工智能技术的不断发展,在解决目标技术需求时,越来越多的技术人员选择通过机器学习的方式,利用与目标技术需求相关的训练数据来对人工智能模型进行训练,从而,利用训练好的人工智能模型来解决目标技术需求。具体的,在实际的建模过程中,基于数据的保密性特点,企业或部门并不会将自己独有的训练数据放置于公众可以自由获取的开源平台中,从而,导致模型训练需要用到的训练数据大多以数据孤岛的形式分布于不同的企业或部门中。因此,在实际建模过程中,如何有效地实现训练数据的共享,成为当前机器学习
技术领域
所迫切需要解决的技术问题。目前的方法,技术人员通常采用联邦学习的方式,为当前的建模任务分配一个对外通信端口,并根据该建模任务下需要用到的每一个训练数据,确定该训练数据所在的企业或部门的通信端口地址,然后,按照传统的生产者消费者模式进行数据通信。具体的,在传统的生产者消费者模式中,上述的对外通信端口相当于生产者,每一个训练数据所在的企业或部门相当于消费者,生产者根据每一个待交互的训练数据以及该训练数据所在的企业或部门的通信端口地址,生成一个数据通信任务,然后,将生成的所有数据通信任务存放至缓存区中,等待每一个消费者从所述缓存区中提取与之对应的数据通信任务。这样,一方面,生产者需要同时与多个消费者的通信端口进行对接,由于不同消费者对于通信端口的安全管控措施不同,因此,导致生产者对于上述对外通信端口的管理较为困难;另一方面,同一消费者可能需要在上述缓存区中提取多个数据通信任务,此时,提取的多个数据通信任务位于该消费者的同一个任务提取队列下,若其中一个数据通信任务出现错误,则可能造成该消费者的整个任务提取队列出现异常,导致任务调度的效率降低。
发明内容
有鉴于此,本申请的目的在于提供一种任务的调度方法、装置、设备及存储介质,以解决任务发起终端与多个任务执行终端之间的通信端口对接问题,降低任务发起终端对于通信端口的管理难度,有利于提高任务调度的效率。
第一方面,本申请实施例提供了一种任务的调度方法,所述调度方法应用于任务调度系统,所述任务调度系统包括:任务发起终端、负载服务器以及多个任务执行终端;所述调度方法包括:
所述负载服务器接收所述任务发起终端发送的针对目标任务的数据接收请求;其中,所述目标任务用于表征利用多种不同类型的目标训练数据构建目标模型的建模任务;所述数据接收请求中至少包括:所述目标任务的任务标识以及每一所述目标训练数据的数据标识;
所述负载服务器根据预先存储的任务处理映射表,从所述多个任务执行终端中,确定针对所述目标任务的目标任务执行终端;其中,所述任务处理映射表中至少包括:多个不同任务的任务标识、每一所述任务对应的多个训练数据的数据标识以及每一所述训练数据对应的通信端口地址;不同的目标任务执行终端上存储的所述目标训练数据不同;
所述负载服务器向每一所述目标任务执行终端发送针对该目标任务执行终端的数据传输请求,并接收该目标任务执行终端发送的目标数据处理结果;其中,所述目标数据处理结果用于表征该目标任务执行终端对应的所述目标训练数据在所述目标任务下对应的数据处理结果;
所述负载服务器将接收到的每一所述目标数据处理结果作为针对所述目标任务的任务执行结果,并将所述任务执行结果发送给所述任务发起终端。
可选的,在所述负载服务器接收所述任务发起终端发送的针对目标任务的数据接收请求之前,所述调度方法,还包括:
所述任务发起终端响应针对所述目标任务的启动操作,从所述多个任务执行终端中,确定每一所述目标训练数据所在的任务执行终端为该目标训练数据对应的第一任务执行终端;
所述任务发起终端针对每一所述第一任务执行终端,生成该第一任务执行终端对应的任务创建请求,并将所述任务创建请求发送给该第一任务执行终端;其中,所述任务创建请求中包括:所述目标任务的任务标识、该第一任务执行终端的终端标识、该第一任务执行终端对应的所述目标训练数据的数据标识以及该目标训练数据在所述目标任务下的数据处理规则;
每一所述第一任务执行终端在接收到所述任务创建请求后,启动针对所述目标任务的目标容器,通过所述目标容器处理该第一任务执行终端上存储的所述目标训练数据,并将所述目标容器的容器端口信息发送给所述负载服务器;其中,所述容器端口信息中至少包括:所述目标任务的任务标识、所述目标容器的容器端口地址以及所述目标容器处理的目标训练数据的数据标识;
所述负载服务器在接收到每一所述目标容器发送的所述容器端口信息后,以所述容器端口信息中的容器端口地址作为该目标容器处理的所述目标训练数据对应的通信端口地址,将所述容器端口信息存入所述任务处理映射表中。
可选的,所述启动针对所述目标任务的目标容器,通过所述目标容器处理该第一任务执行终端上存储的所述目标训练数据,包括:
所述第一任务执行终端响应于接收到的所述任务创建请求,根据该任务创建请求中包括的所述目标任务的任务标识,生成针对所述目标任务的虚拟容器启动指令;
根据所述虚拟容器启动指令,生成针对所述目标任务的虚拟容器,并将生成的该虚拟容器作为所述目标容器;
通过打包镜像的方式,将该第一任务执行终端上存储的所述目标训练数据与该目标训练数据在所述目标任务下对应的环境依赖信息,存放到所述目标容器中;其中,所述环境依赖信息用于表征该目标训练数据在所述目标任务下对应的数据运行环境;
在所述目标容器中,按照该目标训练数据在所述目标任务下的数据处理规则,对该目标训练数据进行数据处理,得到该目标训练数据对应的所述目标数据处理结果。
可选的,所述从所述多个任务执行终端中,确定针对所述目标任务的目标任务执行终端,包括:
所述负载服务器根据接收到的所述目标任务的任务标识,从所述任务处理映射表包括的所述多个不同任务的任务标识中,确定第一任务标识,并将所述第一任务标识在所述任务处理映射表中的位置作为第一查询区域;其中,所述第一任务标识是所述多个不同任务的任务标识中,与所述目标任务的任务标识的匹配程度最高的任务标识;所述第一任务标识对应的多个训练数据的数据标识,以及每个训练数据的通信端口地址都位于所述第一查询区域内;
针对每一所述目标训练数据,从位于所述第一查询区域内的多个训练数据的数据标识中,确定与该目标训练数据的数据标识的匹配程度最高的训练数据的数据标识为第一数据标识;
根据所述第一数据标识对应的训练数据的通信端口地址,确定该目标训练数据对应的所述目标任务执行终端。
可选的,当所述任务发起终端以及每一所述任务执行终端分别对应不同的数据加密规则和数据解密规则时,所述数据接收请求中还包括:所述任务发起终端上的数据加密规则与数据解密规则;每一所述目标任务执行终端向所述负载服务器发送的是所述目标数据处理结果的第一加密结果;所述第一加密结果是每一所述目标任务执行终端按照该目标任务执行终端上的数据加密规则,对所述目标数据处理结果进行加密处理后得到的;所述任务处理映射表中还包括:每一所述任务执行终端上的数据加密规则和数据解密规则。
可选的,所述向每一所述目标任务执行终端发送针对该目标任务执行终端的数据传输请求,并接收该目标任务执行终端发送的目标数据处理结果,包括:
所述负载服务器针对每一所述目标任务执行终端,根据所述任务处理映射表,确定该目标任务执行终端对应的数据加密规则,并按照该数据加密规则向该目标任务执行终端发送针对该目标任务执行终端的所述数据传输请求;所述负载服务器接收该目标任务执行终端针对所述数据传输请求发送的所述第一加密结果;
所述负载服务器根据所述任务处理映射表,确定该目标任务执行终端上的数据解密规则,并按照该目标任务执行终端上的数据解密规则对所述第一加密结果进行解密处理,得到所述目标数据处理结果。
可选的,所述将接收到的每一所述目标数据处理结果作为针对所述目标任务的任务执行结果,并将所述任务执行结果发送给所述任务发起终端,包括:
所述负载服务器根据接收到的所述数据接收请求,确定所述任务发起终端上的数据加密规则;
所述负载服务器根据所述任务发起终端上的数据加密规则,对每一所述目标数据处理结果进行加密处理,得到每一所述目标数据处理结果的第二加密结果;
所述负载服务器将每一所述第二加密结果作为所述任务执行结果发送给所述任务发起终端。
第二方面,本申请实施例提供了一种任务的调度装置,所述调度装置应用于任务调度系统,所述任务调度系统包括:任务发起终端、负载服务器以及多个任务执行终端;所述调度装置包括:
请求接收模块,用于通过所述负载服务器接收所述任务发起终端发送的针对目标任务的数据接收请求;其中,所述目标任务用于表征利用多种不同类型的目标训练数据构建目标模型的建模任务;所述数据接收请求中至少包括:所述目标任务的任务标识以及每一所述目标训练数据的数据标识;
终端确定模块,用于通过所述负载服务器根据预先存储的任务处理映射表,从所述多个任务执行终端中,确定针对所述目标任务的目标任务执行终端;其中,所述任务处理映射表中至少包括:多个不同任务的任务标识、每一所述任务对应的多个训练数据的数据标识以及每一所述训练数据对应的通信端口地址;不同的目标任务执行终端上存储的所述目标训练数据不同;
第一传输模块,用于通过所述负载服务器向每一所述目标任务执行终端发送针对该目标任务执行终端的数据传输请求,并接收该目标任务执行终端发送的目标数据处理结果;其中,所述目标数据处理结果用于表征该目标任务执行终端对应的所述目标训练数据在所述目标任务下对应的数据处理结果;
第二传输模块,用于通过所述负载服务器将接收到的每一所述目标数据处理结果作为针对所述目标任务的任务执行结果,并将所述任务执行结果发送给所述任务发起终端。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的调度方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的调度方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供了一种任务的调度方法、装置、设备及存储介质,所述调度方法包括:负载服务器接收任务发起终端发送的针对目标任务的数据接收请求;负载服务器根据预先存储的任务处理映射表,从多个任务执行终端中,确定针对目标任务的目标任务执行终端;负载服务器向每一目标任务执行终端发送针对该目标任务执行终端的数据传输请求,并接收该目标任务执行终端发送的目标数据处理结果;负载服务器将接收到的每一目标数据处理结果作为针对目标任务的任务执行结果,并将任务执行结果发送给任务发起终端。这样,本申请可以在目标训练数据不离开目标任务执行终端的情况下,任务发起终端也可以从任务调度系统中获取目标任务的任务执行结果。并且,任务发起终端在实际的数据传输过程中,只需与负载服务器进行通信,任务发起终端不需要与多个任务执行终端的通信端口进行对接,从而,解决了任务发起终端与多个任务执行终端之间的通信端口对接问题,降低了任务发起终端对于通信端口的管理难度,有利于提高任务调度的效率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍, 应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种任务的调度方法的流程示意图;
图2示出了本申请实施例所提供的另一种在目标任务发起的同时,对任务处理映射表中已存储信息进行更新的方法的流程示意图;
图3示出了本申请实施例提供的一种确定目标任务执行终端的方法的流程示意图;
图4示出了本申请实施例所提供的一种接收目标数据处理结果的方法的流程示意图;
图5示出了本申请实施例所提供的一种发送任务执行结果的方法的流程示意图;
图6示出了本申请实施例提供的一种任务的调度装置的结构示意图;
图7为本申请实施例提供的一种计算机设备700的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种任务的调度方法、装置、设备及存储介质,下面通过具体实施例进行描述。
参照图1所示,图1示出了本申请实施例所提供的一种任务的调度方法的流程示意图,其中,所述调度方法应用于任务调度系统中,所述任务调度系统包括:任务发起终端、负载服务器以及多个任务执行终端;该调度成方法包括步骤S101-S104;具体的:
S101,所述负载服务器接收所述任务发起终端发送的针对目标任务的数据接收请求。
在本申请实施例中,所述目标任务用于表征利用多种不同类型的目标训练数据构建目标模型的建模任务,任务发起终端是目标任务的发起方所在的终端设备,任务执行终端是任务调度系统中除任务发起终端之外的其他终端设备,负载服务器是任务发起终端的通信代理服务器,负载服务器用于实现任务发起终端与任意一个任务执行终端之间的数据传输,也即负载服务器用于在任务调度系统中,对任务发起终端与任意一个任务执行终端之间的数据通信任务进行调度。
这里,任务发起终端以及每一个任务执行终端中都存储有各自独有的特征数据,任务发起终端与每一个任务执行终端是在保证各自存储的特征数据的安全性以及合法性的前提下,通过构建任务调度系统,以在任务调度系统中实现特征数据的共享,共同完成建模任务,以提高对共建模型的训练效果,解决共同的技术需求。
需要说明的是,任务发起终端是目标任务的发起方所在的终端设备,因此,在任务调度系统中,任务发起终端以及任务发起终端对应的负载服务器并不是一成不变的。例如,任务调度系统中包括:企业A的终端设备a、企业B的终端设备b、企业C的终端设备c、企业D的终端设备d;若企业A在任务调度系统中发起一个目标任务A1,其中,目标任务A1是建立一个实现人脸识别功能的模型,则此时企业A的终端设备a相当于任务发起终端,终端设备a的负载服务器a1相当于任务调度系统中的负载服务器,企业B的终端设备b、企业C的终端设备c、企业D的终端设备d都相当于任务执行终端;若企业B的终端设备b在任务调度系统中发起一个目标任务B1,其中,目标任务B1是建立一个实现用户身份信息认证功能的模型,则此时企业B的终端设备b相当于任务发起终端,终端设备b的负载服务器b1相当于任务调度系统中的负载服务器,企业A的终端设备a、企业C的终端设备c、企业D的终端设备d都相当于任务执行终端。
具体实施方式中,所述数据接收请求中至少包括:所述目标任务的任务标识以及每一所述目标训练数据的数据标识。
示例性的说明,以上述示例中的“目标任务A1”为例,目标任务A1是建立一个实现人脸识别功能的模型,其中,目标任务A1对应以下3种具有不同类型特征的训练数据:目标训练数据m1、目标训练数据m2以及目标训练数据m3;此时,企业A的终端设备a为任务发起终端,终端设备a的负载服务器a1为任务调度系统中的服务器,企业B的终端设备b、企业C的终端设备c、企业D的终端设备d都属于任务执行终端;负载服务器a1接收终端设备a发送的针对目标任务A1的数据接收请求,根据该数据接收请求,确定出目标任务的任务标识为A1,目标训练数据的数据标识为:m1、m2以及m3。
S102,所述负载服务器根据预先存储的任务处理映射表,从所述多个任务执行终端中,确定针对所述目标任务的目标任务执行终端。
本申请实施例中,每一所述目标任务执行终端对应所述目标任务中的一个目标训练数据;所述任务处理映射表中至少包括:多个不同任务的任务标识、每一所述任务对应的多个训练数据的数据标识以及每一所述训练数据对应的通信端口地址;不同的目标任务执行终端上存储的所述目标训练数据不同。
这里,任务处理映射表中的任务可以是任务发起终端在当前时刻之前发起过的历史任务,所述任务对应的多个训练数据可以是历史任务对应的多个历史目标训练数据。具体的,作为一可选实施例,负载服务器可以按照以下方法预先建立并存储得到上述任务处理映射表:
负载服务器根据每一次历史任务下任务发起终端发送的针对该历史任务的数据接收请求,可以获取每一历史任务的任务标识,以及每一历史任务对应的多个历史目标训练数据的数据标识;针对每一所述历史目标训练数据,负载服务器可以获取该历史目标训练数据所在的任务执行终端的通信端口地址作为该历史目标训练数据对应的通信端口地址,从而,预先建立并存储得到上述的任务处理映射表。
具体实施方式中,针对所述目标任务而言,作为一可选实施例,可以按照以下方法,确定针对所述目标任务的目标任务执行终端:
所述负载服务器根据所述数据接收请求,获取每一所述目标训练数据的数据标识;
所述负载服务器根据每一所述目标训练数据的数据标识,从所述任务处理映射表中,确定与该目标训练数据的数据标识的匹配程度最高的训练数据的数据标识为目标数据标识;
所述负载服务器根据所述任务处理映射表,确定所述目标数据标识对应的通信端口地址为该目标训练数据对应的所述目标任务执行终端。
示例性的说明,仍以上述示例为例,目标任务A1对应的目标训练数据为:目标训练数据m1、目标训练数据m2以及目标训练数据m3;其中,目标训练数据m1的数据标识为m1、目标训练数据m2的数据标识为m2、目标训练数据m3的数据标识为m3;则以目标训练数据m1为例,若所述任务处理映射表中存储有训练数据m1以及训练数据m1的通信端口地址t1,则确定通信端口地址t1对应的任务执行终端b为目标训练数据m1对应的目标任务执行终端。
S103,所述负载服务器向每一所述目标任务执行终端发送针对该目标任务执行终端的数据传输请求,并接收该目标任务执行终端发送的目标数据处理结果。
本申请实施例中,所述目标数据处理结果用于表征该目标任务执行终端对应的所述目标训练数据在所述目标任务下对应的数据处理结果。
这里,在同一目标任务下,由于不同的目标任务执行终端对应的目标训练数据不同,因此,每一所述目标训练数据在所述目标任务下对应的数据处理方式不同,作为一可选实施例,当所述任务发起终端发送的所述数据接收请求中还包括每一所述目标训练数据在所述目标任务下对应的数据处理方式时,所述负载服务器还可以针对每一所述目标任务执行终端,将该目标任务执行终端对应的所述目标训练数据在所述目标任务下对应的数据处理方式,放入所述数据传输请求中,一并发送给该目标任务执行终端。
示例性的说明,仍以上述示例为例,目标任务A1对应的目标训练数据为:目标训练数据m1、目标训练数据m2以及目标训练数据m3;任务发起终端a发送的数据接收请求中还包括:目标训练数据m1在目标任务A1下对应的数据处理方式y1、目标训练数据m2在目标任务A1下对应的数据处理方式y2、目标训练数据m3在目标任务A1下对应的数据处理方式y3;若目标训练数据m1的目标任务执行终端为终端设备b、目标训练数据m2的目标任务执行终端为终端设备c、目标训练数据m3的目标任务执行终端为终端设备d;则负载服务器a1向终端设备b发送数据传输请求x1,向终端设备c发送数据传输请求x2,向终端设备d发送数据传输请求x3;其中,数据传输请求x1中包括上述的数据处理方式y1、数据传输请求x2中包括上述的数据处理方式y2、数据传输请求x3中包括上述的数据处理方式y3;负载服务器a1接收终端设备b发送的目标数据处理结果z1、终端设备c发送的目标数据处理结果z2、终端设备d发送的目标数据处理结果z3,其中,目标数据处理结果z1是目标训练数据m1按照数据处理方式y1进行数据处理的结果;目标数据处理结果z2是目标训练数据m2按照数据处理方式y2进行数据处理的结果;目标数据处理结果z3是目标训练数据m3按照数据处理方式y3进行数据处理的结果。
S104,所述负载服务器将接收到的每一所述目标数据处理结果作为针对所述目标任务的任务执行结果,并将所述任务执行结果发送给所述任务发起终端。
示例性的说明,仍以上述示例为例,负载服务器a1将接收到的目标数据处理结果z1、目标数据处理结果z2以及目标数据处理结果z3作为目标任务A1的任务执行结果发送给任务发起终端a。
通过上述分析可知,图1所示的步骤S101-S104对应的是:在所述目标任务下,负载服务器如何实现任务发起终端以及每个目标任务执行终端之间数据传输的具体实施步骤。
这里,需要说明的是,负载服务器是任务发起终端的通信代理服务器,负载服务器用于实现任务发起终端与任意一个任务执行终端之间的数据传输。在不涉及数据传输的情况下,在执行步骤S101之前,任务发起终端可以与任务调度系统中的任意一个任务执行终端进行不涉及训练数据传输的简易通信,这里的简易通信指代的是任务发起终端只向任务执行终端发送一个控制指令型的普通交互请求,任务执行终端对于该普通交互请求进行的响应不会涉及训练数据的传输。
结合上述说明可知,在执行步骤S101之前,任务发起终端可以与任务调度系统中的任意一个任务执行终端进行不涉及数据传输的简易通信,此时,除上述步骤S102中给出的利用历史任务建立任务处理映射表的方法之外,具体的,在一个可行的实施方案中,图2示出了本申请实施例所提供的另一种在目标任务发起的同时,对任务处理映射表中已存储信息进行更新的方法的流程示意图,如图2所示,在执行步骤S101之前,该方法还包括S201-S204;具体的:
S201,所述任务发起终端响应针对所述目标任务的启动操作,从所述多个任务执行终端中,确定每一所述目标训练数据所在的任务执行终端为该目标训练数据对应的第一任务执行终端。
具体实施方式中,任务发起终端上存储有每一所述任务执行终端上的数据存储信息,在执行步骤S201时,任务发起终端可以根据目标任务中包括的每一目标训练数据,以及预先存储的每一所述任务执行终端上的数据存储信息,来确定每一所述目标训练数据所在的任务执行终端。
示例性的说明,任务发起终端a响应于目标任务A1的启动操作,确定目标任务A1对应的目标训练数据为:目标训练数据m1、目标训练数据m2以及目标训练数据m3;任务发起终端a根据预先存储的每一所述任务执行终端上的数据存储信息,若确定目标训练数据m1所在的任务执行终端为终端设备b、目标训练数据m2所在的任务执行终端为终端设备c、目标训练数据m3所在的任务执行终端为终端设备d;则可以确定目标训练数据m1对应的第一任务执行终端为终端设备b、目标训练数据m2对应的第一任务执行终端为终端设备c、目标训练数据m3对应的第一任务执行终端为终端设备d。
S202,所述任务发起终端针对每一所述第一任务执行终端,生成该第一任务执行终端对应的任务创建请求,并将所述任务创建请求发送给该第一任务执行终端。
具体的,其中,所述任务创建请求中包括:所述目标任务的任务标识、该第一任务执行终端的终端标识、该第一任务执行终端对应的所述目标训练数据的数据标识以及该目标训练数据在所述目标任务下的数据处理规则。
示例性的说明,以上述示例中的第一任务执行终端为终端设备b为例,任务发起终端a生成终端设备b对应的任务创建请求w1为:目标任务的任务标识A1、第一任务执行终端的终端标识b、目标训练数据m1的数据标识m1以及目标训练数据m1在目标任务A1下的数据处理规则y1。
S203,每一所述第一任务执行终端在接收到所述任务创建请求后,启动针对所述目标任务的目标容器,通过所述目标容器处理该第一任务执行终端上存储的所述目标训练数据,并将所述目标容器的容器端口信息发送给所述负载服务器。
本申请实施例中,所述容器端口信息中至少包括:所述目标任务的任务标识、所述目标容器的容器端口地址以及所述目标容器处理的目标训练数据的数据标识。
这里,在具体实施中,第一任务执行终端可以通过生成Docker (一个开源的应用容器引擎)API(Application programming interface,应用程序接口)启动指令的方式,来启动针对目标任务的目标容器,其中,目标容器为虚拟的docker容器。
这里,目标容器的容器端口地址,可以是目标容器随机生成的端口地址。
本申请实施例中,作为一可选实施例,所述启动针对所述目标任务的目标容器,通过所述目标容器处理该第一任务执行终端上存储的所述目标训练数据,包括:
所述第一任务执行终端响应于接收到的所述任务创建请求,根据该任务创建请求中包括的所述目标任务的任务标识,生成针对所述目标任务的虚拟容器启动指令;
根据所述虚拟容器启动指令,生成针对所述目标任务的虚拟容器,并将生成的该虚拟容器作为所述目标容器;
通过打包镜像的方式,将该第一任务执行终端上存储的所述目标训练数据与该目标训练数据在所述目标任务下对应的环境依赖信息,存放到所述目标容器中;其中,所述环境依赖信息用于表征该目标训练数据在所述目标任务下对应的数据运行环境;
在所述目标容器中,按照该目标训练数据在所述目标任务下的数据处理规则,对该目标训练数据进行数据处理,得到该目标训练数据对应的所述目标数据处理结果。
这里,所述环境依赖信息可以根据该目标训练数据在所述目标任务下对应的数据处理规则来确定。
示例性的说明,仍以上述示例中的第一任务执行终端为终端设备b为例,终端设备b接收到任务创建请求w1之后,根据任务创建请求w1中包括的目标任务的任务标识A1,生成针对目标任务A1的虚拟容器启动指令,将任务标识A1与待生成的虚拟容器的容器标识p1进行关联,生成针对目标任务A1的目标容器p1;然后,根据目标训练数据m1在目标任务A1下的数据处理规则y1,确定目标训练数据m1在目标任务A1下对应的环境依赖信息L1;将目标训练数据m1以及环境依赖信息L1通过打包镜像的方式,放入目标容器p1中;在目标容器p1中,按照目标训练数据m1在目标任务A1下的数据处理规则y1,对目标训练数据m1进行处理,得到目标训练数据m1对应的目标数据处理结果z1。其中,还可以通过目标容器p1随机生成一个目标容器p1的容器端口地址r1,将目标任务A1的任务标识A1、容器端口地址r1以及目标训练数据m1的数据标识m1作为目标容器p1的容器端口信息发送给负载服务器a1。
S204,所述负载服务器在接收到每一所述目标容器发送的所述容器端口信息后,以所述容器端口信息中的容器端口地址作为该目标容器处理的所述目标训练数据对应的通信端口地址,将所述容器端口信息存入所述任务处理映射表中。
具体实施方式中,作为一可选实施例,所述负载服务器可以将所述目标任务的任务标识、每一所述目标训练数据的数据标识,以及每一所述目标训练数据对应的目标容器的容器端口地址,存放至任务处理映射表的空白区域中。
示例性的说明,仍以目标任务A1为例,若目标训练数据m1对应的目标容器为p1、目标训练数据m2对应的目标容器为p2、目标训练数据m3对应的目标容器为p3,其中,目标容器p1的容器端口地址为r1、目标容器p2的容器端口地址为r2、目标容器p3的容器端口地址为r3;则可以按照上述方式,将每一目标容器发送的容器端口信息存放至任务处理映射表中,得到更新后的任务处理映射表如下表所示:
。
其中,上表中的h1是训练数据s1的目标容器的容器端口地址;上表中的h2是训练数据s2的目标容器的容器端口地址;上表中的h3是训练数据s3的目标容器的容器端口地址。
在一个可行的实施方案中,在图2的基础上,图3示出了本申请实施例提供的一种确定目标任务执行终端的方法的流程示意图,如图3所示,在执行步骤S102时,该方法还包括S301-S303;具体的:
S301,所述负载服务器根据接收到的所述目标任务的任务标识,从所述任务处理映射表包括的所述多个不同任务的任务标识中,确定第一任务标识,并将所述第一任务标识在所述任务处理映射表中的位置作为第一查询区域。
具体的,其中,所述第一任务标识是所述多个不同任务的任务标识中,与所述目标任务的任务标识的匹配程度最高的任务标识;所述第一任务标识对应的多个训练数据的数据标识,以及每个训练数据的通信端口地址都位于所述第一查询区域内。
示例性的说明,以上述表格所示的任务处理映射表为例,负载服务器a1根据接收到的目标任务A1的任务标识A1,从上述表格所示的任务处理映射表中,确定任务标识A1为第一任务标识,并将第一任务标识A1所在的行作为第一查询区域。
S302,针对每一所述目标训练数据,从位于所述第一查询区域内的多个训练数据的数据标识中,确定与该目标训练数据的数据标识的匹配程度最高的训练数据的数据标识为第一数据标识。
示例性的说明,仍以上述表格为例,确定出第一查询区域为上述表格中最后一行的区域,在第一查询区域中,确定数据标识m1是目标训练数据m1的第一数据标识,数据标识m2是目标训练数据m2的第一数据标识,数据标识m3是目标训练数据m3的第一数据标识。
S303,根据所述第一数据标识对应的训练数据的通信端口地址,确定该目标训练数据对应的所述目标任务执行终端。
示例性的说明,以上述表格中的第一数据标识m1为例,可以确定第一数据标识m1对应的容器端口地址r1为目标训练数据m1的通信端口地址,由于容器端口地址r1是终端设备b上的目标容器p1的容器端口地址,因此,可以确定目标训练数据m1对应的目标任务执行终端为终端设备b。
本申请实施例中,结合步骤S101可知,任务发起终端与每一个任务执行终端是需要保证各自存储的特征数据的安全性以及合法性,因此,在执行步骤S101-S104的过程中,所述任务发起终端以及每一所述任务执行终端可以分别对应不同的数据加密规则和数据解密规则,以保证数据传输过程的安全性。
进一步的,在上述情况下,所述任务发起终端以及每一所述任务执行终端发送的数据都需要按照各自的加密规则进行加密,此时,对于上述步骤S101-S104,需要说明的是:
所述数据接收请求中还包括:所述任务发起终端上的数据加密规则与数据解密规则;每一所述目标任务执行终端向所述负载服务器发送的是所述目标数据处理结果的第一加密结果;所述第一加密结果是每一所述目标任务执行终端按照该目标任务执行终端上的数据加密规则,对所述目标数据处理结果进行加密处理后得到的;所述任务处理映射表中还包括:每一所述任务执行终端上的数据加密规则和数据解密规则。
下面针对上述情况,对本申请实施例中的步骤S103以及步骤S104分别进行详细说明:
在一个可行的实施方案中,图4示出了本申请实施例所提供的一种接收目标数据处理结果的方法的流程示意图,如图4所示,在执行步骤S103时,该方法还包括S401-S403;具体的:
S401,所述负载服务器针对每一所述目标任务执行终端,根据所述任务处理映射表,确定该目标任务执行终端对应的数据加密规则,并按照该数据加密规则向该目标任务执行终端发送针对该目标任务执行终端的所述数据传输请求。
示例性的说明,以上述步骤S103示例中目标训练数据m1对应的目标任务执行终端是终端设备b为例,负载服务器a1从任务处理映射表,获取终端设备b上的数据加密规则为nb,然后,针对终端设备b对应的数据传输请求x1,按照获取的数据加密规则nb,对数据传输请求x1进行加密,将加密后的数据传输请求x1发送给终端设备b。
S402,所述负载服务器接收该目标任务执行终端针对所述数据传输请求发送的所述第一加密结果。
示例性的说明,以上述步骤S401的示例为例,终端设备b按照终端设备b上的数据解密规则jb对接收到的数据传输请求x1进行解密,得到目标训练数据m1在目标任务A1下对应的数据处理方式y1,终端设备b通过目标容器p1,按照数据处理方式y1对目标训练数据m1进行数据处理,得到目标训练数据m1的目标数据处理结果z1,然后,终端设备b按照上述的数据加密规则nb对目标数据处理结果z1进行加密,得到目标数据处理结果z1的第一加密结果,并将目标数据处理结果z1的第一加密结果发送给负载服务器a1。
S403,所述负载服务器根据所述任务处理映射表,确定该目标任务执行终端上的数据解密规则,并按照该目标任务执行终端上的数据解密规则对所述第一加密结果进行解密处理,得到所述目标数据处理结果。
示例性的说明,以上述步骤S402的示例为例,负载服务器a1从任务处理映射表,获取终端设备b上的数据解密规则为jb,利用数据解密规则jb对上述的第一加密结果进行解密处理,得到目标数据处理结果z1。
在一个可行的实施方案中,图5示出了本申请实施例所提供的一种发送任务执行结果的方法的流程示意图,如图5所示,在执行步骤S104时,该方法还包括S501-S503;具体的:
S501,所述负载服务器根据接收到的所述数据接收请求,确定所述任务发起终端上的数据加密规则。
示例性的说明,以上述步骤S403的示例为例,负载服务器a1在得到目标数据处理结果z1之后,根据步骤S101中接收到的数据接收请求,确定任务发起终端a的数据加密规则为na。
S502,所述负载服务器根据所述任务发起终端上的数据加密规则,对每一所述目标数据处理结果进行加密处理,得到每一所述目标数据处理结果的第二加密结果。
示例性的说明,以上述步骤S502的示例为例,负载服务器a1根据任务发起终端a的数据加密规则为na,对目标数据处理结果z1进行加密处理得到目标数据处理结果z1的第二加密结果。
S503,所述负载服务器将每一所述第二加密结果作为所述任务执行结果发送给所述任务发起终端。
示例性的说明,若目标训练数据m1的目标数据处理结果为z1、目标训练数据m2的目标数据处理结果为z2、目标训练数据m3的目标数据处理结果为z3;则负载服务器a1根据任务发起终端a的数据加密规则为na,分别对目标数据处理结果z1、目标数据处理结果z2、目标数据处理结果z3进行加密处理,将加密处理的结果作为目标任务A1的任务执行结果发送给任务发起终端a,任务发起终端a按照任务发起终端a的数据解密规则ja,对接收到的任务执行结果进行解密,即可得到目标训练数据m1的目标数据处理结果z1、目标训练数据m2的目标数据处理结果z2、目标训练数据m3的目标数据处理结果z3。
通过本申请提供的一种任务的调度方法,本申请可以在目标训练数据不离开目标任务执行终端的情况下,任务发起终端也可以从任务调度系统中获取目标任务的任务执行结果。并且,任务发起终端在实际的数据传输过程中,只需与负载服务器进行通信,任务发起终端不需要与多个任务执行终端的通信端口进行对接,从而,解决了任务发起终端与多个任务执行终端之间的通信端口对接问题,降低了任务发起终端对于通信端口的管理难度,有利于提高任务调度的效率。
基于同一发明构思,本申请还提供了与上述调度方法对应的调度装置,由于本申请实施例中的调度装置解决问题的原理与本申请实施例中上述调度方法相似,因此调度装置的实施可以参见方法的实施,重复之处不再赘述。
参照图6所示,图6示出了本申请实施例提供的一种任务的调度装置的结构示意图,所述调度装置应用于任务调度系统,所述任务调度系统包括:任务发起终端、负载服务器以及多个任务执行终端;所述调度装置包括:
请求接收模块601,用于通过所述负载服务器接收所述任务发起终端发送的针对目标任务的数据接收请求;其中,所述目标任务用于表征利用多种不同类型的目标训练数据构建目标模型的建模任务;所述数据接收请求中至少包括:所述目标任务的任务标识以及每一所述目标训练数据的数据标识;
终端确定模块602,用于通过所述负载服务器根据预先存储的任务处理映射表,从所述多个任务执行终端中,确定针对所述目标任务的目标任务执行终端;其中,所述任务处理映射表中至少包括:多个不同任务的任务标识、每一所述任务对应的多个训练数据的数据标识以及每一所述训练数据对应的通信端口地址;不同的目标任务执行终端上存储的所述目标训练数据不同;
第一传输模块603,用于通过所述负载服务器向每一所述目标任务执行终端发送针对该目标任务执行终端的数据传输请求,并接收该目标任务执行终端发送的目标数据处理结果;其中,所述目标数据处理结果用于表征该目标任务执行终端对应的所述目标训练数据在所述目标任务下对应的数据处理结果;
第二传输模块604,用于通过所述负载服务器将接收到的每一所述目标数据处理结果作为针对所述目标任务的任务执行结果,并将所述任务执行结果发送给所述任务发起终端。
可选的,所述调度装置,还包括:第一确定模块、第一生成模块、第一处理模块以及第一发送模块;其中,在请求接收模块601通过所述负载服务器接收所述任务发起终端发送的针对目标任务的数据接收请求之前:
所示第一确定模块,用于通过所述任务发起终端响应针对所述目标任务的启动操作,从所述多个任务执行终端中,确定每一所述目标训练数据所在的任务执行终端为该目标训练数据对应的第一任务执行终端;
所述第一生成模块,用于通过所述任务发起终端针对每一所述第一任务执行终端,生成该第一任务执行终端对应的任务创建请求,并将所述任务创建请求发送给该第一任务执行终端;其中,所述任务创建请求中包括:所述目标任务的任务标识、该第一任务执行终端的终端标识、该第一任务执行终端对应的所述目标训练数据的数据标识以及该目标训练数据在所述目标任务下的数据处理规则;
所述第一处理模块,用于通过每一所述第一任务执行终端在接收到所述任务创建请求后,启动针对所述目标任务的目标容器,通过所述目标容器处理该第一任务执行终端上存储的所述目标训练数据,并将所述目标容器的容器端口信息发送给所述负载服务器;其中,所述容器端口信息中至少包括:所述目标任务的任务标识、所述目标容器的容器端口地址以及所述目标容器处理的目标训练数据的数据标识;
所述第一发送模块,用于通过所述负载服务器在接收到每一所述目标容器发送的所述容器端口信息后,以所述容器端口信息中的容器端口地址作为该目标容器处理的所述目标训练数据对应的通信端口地址,将所述容器端口信息存入所述任务处理映射表中。
可选的,所述第一处理模块,在所述启动针对所述目标任务的目标容器,通过所述目标容器处理该第一任务执行终端上存储的所述目标训练数据时,具体用于:
通过所述第一任务执行终端响应于接收到的所述任务创建请求,根据该任务创建请求中包括的所述目标任务的任务标识,生成针对所述目标任务的虚拟容器启动指令;
根据所述虚拟容器启动指令,生成针对所述目标任务的虚拟容器,并将生成的该虚拟容器作为所述目标容器;
通过打包镜像的方式,将该第一任务执行终端上存储的所述目标训练数据与该目标训练数据在所述目标任务下对应的环境依赖信息,存放到所述目标容器中;其中,所述环境依赖信息用于表征该目标训练数据在所述目标任务下对应的数据运行环境;
在所述目标容器中,按照该目标训练数据在所述目标任务下的数据处理规则,对该目标训练数据进行数据处理,得到该目标训练数据对应的所述目标数据处理结果。
可选的,终端确定模块602,具体用于:
通过所述负载服务器根据接收到的所述目标任务的任务标识,从所述任务处理映射表包括的所述多个不同任务的任务标识中,确定第一任务标识,并将所述第一任务标识在所述任务处理映射表中的位置作为第一查询区域;其中,所述第一任务标识是所述多个不同任务的任务标识中,与所述目标任务的任务标识的匹配程度最高的任务标识;所述第一任务标识对应的多个训练数据的数据标识,以及每个训练数据的通信端口地址都位于所述第一查询区域内;
针对每一所述目标训练数据,从位于所述第一查询区域内的多个训练数据的数据标识中,确定与该目标训练数据的数据标识的匹配程度最高的训练数据的数据标识为第一数据标识;
根据所述第一数据标识对应的训练数据的通信端口地址,确定该目标训练数据对应的所述目标任务执行终端。
可选的,在所述调度装置中,当所述任务发起终端以及每一所述任务执行终端分别对应不同的数据加密规则和数据解密规则时,所述数据接收请求中还包括:所述任务发起终端上的数据加密规则与数据解密规则;每一所述目标任务执行终端向所述负载服务器发送的是所述目标数据处理结果的第一加密结果;所述第一加密结果是每一所述目标任务执行终端按照该目标任务执行终端上的数据加密规则,对所述目标数据处理结果进行加密处理后得到的;所述任务处理映射表中还包括:每一所述任务执行终端上的数据加密规则和数据解密规则。
可选的,在上述情况下,第一传输模块603,具体用于:
所述负载服务器针对每一所述目标任务执行终端,根据所述任务处理映射表,确定该目标任务执行终端对应的数据加密规则,并按照该数据加密规则向该目标任务执行终端发送针对该目标任务执行终端的所述数据传输请求;所述负载服务器接收该目标任务执行终端针对所述数据传输请求发送的所述第一加密结果;
所述负载服务器根据所述任务处理映射表,确定该目标任务执行终端上的数据解密规则,并按照该目标任务执行终端上的数据解密规则对所述第一加密结果进行解密处理,得到所述目标数据处理结果。
可选的,在上述情况下,第二传输模块604,具体用于:
所述负载服务器根据接收到的所述数据接收请求,确定所述任务发起终端上的数据加密规则;
所述负载服务器根据所述任务发起终端上的数据加密规则,对每一所述目标数据处理结果进行加密处理,得到每一所述目标数据处理结果的第二加密结果;
所述负载服务器将每一所述第二加密结果作为所述任务执行结果发送给所述任务发起终端。
如图7所示,本申请实施例提供了一种计算机设备700,用于执行本申请中的任务的调度方法,该设备包括存储器701、处理器702及存储在该存储器701上并可在该处理器702上运行的计算机程序,其中,上述处理器702执行上述计算机程序时实现上述的任务的调度方法的步骤。
具体地,上述存储器701和处理器702可以为通用的存储器和处理器,这里不做具体限定,当处理器702运行存储器701存储的计算机程序时,能够执行上述的任务的调度方法。
对应于本申请中的任务的调度方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的任务的调度方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述的任务的调度方法。
在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。