CN109766184A - 分布式任务处理方法、装置、服务器和系统 - Google Patents

分布式任务处理方法、装置、服务器和系统 Download PDF

Info

Publication number
CN109766184A
CN109766184A CN201811631798.4A CN201811631798A CN109766184A CN 109766184 A CN109766184 A CN 109766184A CN 201811631798 A CN201811631798 A CN 201811631798A CN 109766184 A CN109766184 A CN 109766184A
Authority
CN
China
Prior art keywords
container
node
job execution
task
job
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
Application number
CN201811631798.4A
Other languages
English (en)
Inventor
刘向东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201811631798.4A priority Critical patent/CN109766184A/zh
Publication of CN109766184A publication Critical patent/CN109766184A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明提供了一种分布式任务处理方法、装置、服务器和系统,属于大数据处理技术领域。其中,执行节点执行的分布式任务处理方法,包括:接收调度节点派发的待处理任务;确定所述待处理任务对应的多个作业;为每个作业创建对应的容器,通过所述作业对应的容器执行所述作业。本发明提供的分布式任务处理方法、装置、服务器和分布式任务处理系统,执行节点接收到调度节点派发的待处理任务,确定待处理任务对应的多个作业;为每个作业创建对应的容器,通过作业对应的容器执行所述作业,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。

Description

分布式任务处理方法、装置、服务器和系统
技术领域
本发明涉及大数据处理技术领域,具体而言,涉及一种分布式任务处理方法、装置、服务器和系统。
背景技术
分布式任务处理系统是多个处理机通过通信线路互连而构成的松散耦合的系统,用于管理分布式系统资源,在分布式计算机操作系统支持下,互连的计算机可以相互协调工作,共同完成一项任务。分布式系统可以直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输等工作,为用户提供一个统一的界面标准的接口。
在分布式任务处理系统中,当接收到用户的任务处理请求时,调度节点会将所述任务处理请求携带的任务事项拆分成多个可执行的待处理任务,派发给多个执行节点并发执行。但是,在执行节点执行任务的过程中,如果执行节点需要升级,则会延误该执行节点正在执行的任务,甚至致使任务中断,影响用户体验。
发明内容
针对上述现有技术中存在的问题,本发明提供了一种分布式任务处理方法、装置、服务器和分布式任务处理系统,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,提高用户体验。
第一方面,本发明实施例提供了一种分布式任务处理方法,所述方法应用于执行节点,所述方法包括:
接收调度节点派发的待处理任务;
确定所述待处理任务对应的多个作业;
为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业的步骤,包括:
向容器平台发送作业执行请求,所述作业执行请求中携带有所述多个作业,以使所述容器平台为每个所述作业创建对应的容器,并使所述容器执行所述作业。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述向容器平台发送作业执行请求的步骤之后,所述方法还包括:
接收所述容器平台反馈的所述作业与所述容器的对应关系;
将所述作业与所述容器的对应关系存储至预定数据库中。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述方法还包括:
查询所述预定数据库存储的对应关系,确定所述作业对应的容器;
向所述容器平台发送作业执行状态查询请求,所述作业执行状态查询请求中携带有所述作业对应的容器的容器标识;
接收所述容器平台反馈的所述容器标识对应的容器的作业执行状态。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述方法还包括:
接收所述容器平台发送的各个容器的作业执行结果;
如果根据所述作业执行结果确定所述作业已执行完成,向所述容器平台发送容器删除指令,其中,所述容器删除指令用于指示删除所述已执行完成的作业对应的容器。
结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,接收所述容器平台发送的各个容器的作业执行结果的步骤之后,所述方法还包括:
如果接收到所有容器的作业执行结果,根据所述作业执行结果生成任务执行结果;
向所述调度节点反馈所述待处理任务的任务执行结果。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述容器为Docker容器。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述待处理任务包括工作流实例。
第二方面,本发明实施例还提供了一种分布式任务处理方法,所述方法应用于容器平台,所述方法包括:
接收执行节点发送的作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,在为每个所述作业创建对应的容器后,所述方法还包括:
向所述执行节点反馈所述作业与所述容器的对应关系。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述方法还包括:
接收所述执行节点的作业执行状态查询请求,所述作业执行状态查询请求中携带有容器标识;
根据所述容器标识,获取所述容器标识对应的容器的作业执行状态;
将所述作业执行状态反馈至所述执行节点。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述方法还包括:
接收所述执行节点在确定作业已执行完成后发送的容器删除指令,其中,所述容器删除指令用于指示删除所述已执行完成的作业对应的容器;
根据所述容器删除指令,删除所述容器删除指令对应的容器。
第三方面,本发明实施例还提供了一种分布式任务处理装置,所述装置应用于执行节点,所述装置包括:
第一作业接收模块,用于接收调度节点派发的待处理任务;确定所述待处理任务对应的多个作业;
作业执行模块,用于为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业。
结合第三方面,本发明实施例提供了第三方面的第一种可能的实施方式,其中,所述作业执行模块还用于:
向容器平台发送作业执行请求,所述作业执行请求中携带有所述多个作业,以使所述容器平台为每个所述作业创建对应的容器,并使所述作业对应的容器执行所述作业。
结合第三方面的第一种可能的实施方式,本发明实施例提供了第三方面的第二种可能的实施方式,其中,所述作业执行模块还用于:
接收所述容器平台反馈的所述作业与所述容器的对应关系;
将所述作业与所述容器的对应关系存储至预定数据库中。
结合第三方面的第二种可能的实施方式,本发明实施例提供了第三方面的第三种可能的实施方式,其中,所述装置还包括查询模块,用于:
查询所述预定数据库存储的对应关系,确定所述作业对应的容器;
向所述容器平台发送作业执行状态查询请求,所述作业执行状态查询请求中携带有所述作业对应的容器的容器标识;
接收所述容器平台反馈的所述容器标识对应的容器的作业执行状态。
结合第三方面的第二种可能的实施方式,本发明实施例提供了第三方面的第四种可能的实施方式,其中,所述作业执行模块还用于:
接收所述容器平台发送的各个容器的作业执行结果;
如果根据所述作业执行结果确定所述作业已执行完成,向所述容器平台发送容器删除指令;所述容器删除指令用于指示删除所述已执行完成的作业对应的容器。
结合第三方面的第四种可能的实施方式,本发明实施例提供了第三方面的第五种可能的实施方式,其中,所述装置还包括结果反馈模块,用于:
如果接收到所有容器的作业执行结果,根据所述作业执行结果生成任务执行结果;
向所述调度节点反馈所述待处理任务的任务执行结果。
结合第三方面,本发明实施例提供了第三方面的第六种可能的实施方式,其中,所述容器为Docker容器。
结合第三方面,本发明实施例提供了第三方面的第七种可能的实施方式,其中,所述待处理任务包括工作流实例。
第四方面,本发明实施例还提供了一种分布式任务处理装置,所述装置应用于容器平台,所述装置包括:
第二作业接收模块,用于接收执行节点发送的作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
容器创建模块,用于为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
结合第四方面,本发明实施例提供了第四方面的第一种可能的实施方式,其中,所述容器创建模块还用于:
向所述执行节点反馈所述作业与所述容器的对应关系。
结合第四方面,本发明实施例提供了第四方面的第二种可能的实施方式,其中,所述装置还包括查询反馈模块,用于:
接收所述执行节点的作业执行状态查询请求,所述作业执行状态查询请求中携带有容器标识;
根据所述容器标识,获取所述容器标识对应的容器的作业执行状态;
将所述作业执行状态反馈至所述执行节点。
结合第四方面,本发明实施例提供了第四方面的第三种可能的实施方式,其中,所述装置还包括容器删除模块,用于:
接收所述执行节点在确定作业已执行完成后发送的容器删除指令;所述容器删除指令用于指示删除所述已执行完成的作业对应的容器;
根据所述容器删除指令,删除所述容器删除指令对应的容器。
第五方面,本发明实施例还提供了一种服务器,包括处理器和存储器,所述存储器中存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现第一方面或第二方面中任一项所述的方法。
第六方面,本发明实施例还提供了一种分布式任务处理系统,包括调度节点,与所述调度节点连接的执行节点和与所述执行节点连接的容器平台;
所述调度节点用于获取待处理任务,将所述待处理任务派发给执行节点;
所述执行节点用于确定所述接收到的待处理任务对应的多个作业,并向容器平台发送作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
所述容器平台用于根据接收到的作业执行请求为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
结合第六方面,本发明实施例提供了第六方面的第一种可能的实施方式,其中,所述容器平台还用于向所述执行节点发送各个容器的作业执行结果;所述执行节点还用于根据各个容器的作业执行结果向所述调度节点反馈所述待处理任务的任务执行结果。
第七方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现第一方面或第二方面所提供的方法。
本发明实施例带来了以下有益效果:
本发明实施例提供的分布式任务处理方法、装置、服务器和分布式任务处理系统,其中,执行节点接收到调度节点派发的待处理任务,确定待处理任务对应的多个作业;为每个作业创建对应的容器,通过作业对应的容器执行所述作业,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种分布式任务处理系统的结构框图;
图2为本发明实施例提供的一种分布式任务处理方法的交互图;
图3为本发明实施例提供的一种分布式任务处理方法的流程图;
图4为本发明实施例提供的另一种分布式任务处理方法的流程图;
图5为本发明实施例所提供的一种分布式任务处理装置的结构框图;
图6为本发明实施例所提供的另一种分布式任务处理装置的结构框图;
图7为本发明实施例所提供的一种服务器的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有的分布式计算系统,在执行节点执行任务的过程中,如果执行节点需要升级,则会耽误该执行节点正在执行的任务,甚至致使任务丢失,影响用户体验得问题,本发明实施例提供了一种分布式任务处理方法、装置、服务器和分布式任务处理系统,为了更便于理解,以下首先对本发明的分布式任务处理系统进行详细介绍。
实施例一
本实施例提供了一种分布式任务处理系统,如图1所示,该分布式任务处理系统包括调度节点100,与调度节点100连接的执行节点200和与执行节点200连接的容器平台300。其中,调度节点100、执行节点200和容器平台300均可以是服务器。一个调度节点100可以连接多个执行节点200。多个执行节点200可以连接至同一个容器平台300,也可以连接至不同的容器平台300。
需要说明的是,图1仅为示例,该分布式任务处理系统可包括至少一个执行节点100。此外,容器平台300实际上可以为服务器集群,例如k8s+Docker集群。
调度节点100用于获取待处理任务,将待处理任务派发给执行节点200。譬如,调度节点100接收到用户的任务处理请求,将任务处理请求携带的任务事项拆分成多个可执行的待处理任务,分别派发给多个执行节点并发执行。具体的,针对于大数据处理,调度节点100分发给执行节点的待处理任务为工作流实例,该工作流实例包括多个作业。
执行节点200用于将接收到的待处理任务分为多个作业,并向容器平台300发送作业执行请求,作业执行请求中携带有待处理任务对应的多个作业。
需要说明的是,作业是指分布式处理中的最小可独立执行单元。
容器平台300用于根据接收到的作业执行请求为每个作业创建对应的容器,并将每个作业发送至对应的容器,以使所述容器执行所述作业。其中,不同的容器可以位于同一台服务器或物理机上,也可以位于不同的服务器或物理机上。
容器平台300还用于向执行节点200发送各个容器的作业执行结果。执行节点200还用于根据各个容器的作业执行结果向调度节点100反馈其所承办的待处理任务的任务执行结果。
本发明实施例提供的分布式任务处理系统,调度节点100将任务事务拆分成多个待处理任务,分别派发给不同的执行节点200进行处理,每个执行节点200将待处理任务拆分为多个作业,并通过容器平台300为每个作业创建对应的容器,将每个作业分配至对应的容器中进行执行,作业是由容器执行,执行节点的运行状态对于作业的执行并没有影响,因此,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。
实施例二
本实施例提供了一种可应用于上述分布式任务处理系统的分布式任务处理方法。图2示出了该分布式任务处理方法的交互图,如图2所示,该方法包括如下步骤:
步骤S202,调度节点接收用户的任务处理请求,根据任务处理请求确定待处理任务。
在分布式任务处理系统中,调度节点接收到用户的任务处理请求时,可以将所述任务处理请求携带的任务事项拆分成多个可执行的待处理任务。其中,所述待处理任务包括工作流实例。
步骤S204,调度节点发送待处理任务至执行节点。
调度节点可以将不同的待处理任务派发给不同的执行节点并发执行。
步骤S206,执行节点接收待处理任务,确定待处理任务对应的多个作业,并生成作业执行请求。
执行节点接收到调度节点派发的待处理任务,可以将待处理任务分为多个作业,并生成作业执行请求。其中,所述作业执行请求包括所述多个作业,所述作业可以理解为线程。
步骤S208,执行节点向容器平台发送作业执行请求。
步骤S210,容器平台接收到作业执行请求,为每个作业创建对应的容器,并将每个作业发送至对应的容器,以使所述容器执行所述作业。
其中,不同的容器可以位于同一服务器或物理机上,也可以位于不同的服务器或物理机上。所述容器可以是Docker容器。容器平台在为每个作业创建对应的Docker容器的同时,启动相应的作业,使作业在对应的Docker容器中执行。例如,容器平台在创建Docker容器的命令中包含启动作业的参数,创建Docker容器的同时启动作业。
步骤S212,容器平台向执行节点发送容器与作业的对应关系。
容器平台在为每个所述作业创建对应的容器后,向执行节点反馈作业与容器的对应关系。
步骤S214,执行节点将容器与作业的对应关系存储至预定数据库中。
执行节点接收到容器平台反馈的作业与容器的对应关系,将作业与容器的对应关系存储至预定数据库中。作业与容器的对应关系可以理解为将作业的信息与对应的Docker容器的信息相关联。其中,作业的信息可以包括每个作业唯一对应的作业ID,Docker容器的信息可以包括Docker容器的容器标识和地址信息等,容器标识可以是与每个Docker容器唯一对应的容器ID。Docker容器的信息还可以包括Docker容器的运行状态信息,Docker容器的运行状态信息分为运行状态和运行完成状态,当某个Docker容器刚建立时,该Docker容器处于运行状态,当该Docker容器将对应的作业执行完成后,容器平台将该容器的作业执行结果发送至执行节点,执行节点接收到作业执行结果,且作业执行结果显示作业已执行完毕,则将Docker容器的运行状态信息修改为运行完成状态。
上述的预定数据库可以保存在执行节点本地,也可以保存在与执行节点连接的其它存储设备或网络存储设备上。将预定数据库保存在与执行节点连接的其它存储设备或网络存储设备上,可以避免执行节点出现故障时,预定数据库中的数据受损,提高存储数据的可靠性。
基于存储的对应关系,执行节点可以随时了解所关注的每个作业的执行状态,针对一作业,执行节点基于所存储的对应关系即可获取到执行该作业的容器,进而可以通过容器平台查询该容器对于该作业的执行状态。
步骤S216,容器平台向执行节点发送各个容器的作业执行结果。
容器平台监测各个容器的作业执行状态,向执行节点发送各个容器的作业执行结果。
步骤S218,执行节点如果根据作业执行结果确定所述作业已执行完成,生成容器删除指令。
执行节点接收容器平台发送的各个容器的作业执行结果,如果根据所述作业执行结果确定所述作业已执行完成,生成容器删除指令。其中,容器删除指令携带有预删除的容器的容器标识等,用于指示删除所述已执行完成的作业对应的容器。
步骤S220,执行节点向容器平台发送容器删除指令。
步骤S222,容器平台根据容器删除指令,删除容器删除指令对应的容器。
容器平台接收执行节点在确定作业已执行完成后发送的容器删除指令。根据所述容器删除指令,删除容器删除指令对应的容器,或者说,删除容器删除指令中携带的容器信息对应的容器。
步骤S224,执行节点如果接收到所有容器的作业执行结果,根据所述作业执行结果生成任务执行结果。
执行节点如果接收到所有容器的作业执行结果,根据所述作业执行结果生成任务执行结果。例如,执行节点每接收到一个容器的作业执行结果,且作业执行结果显示作业已执行完成,则执行节点将预定数据库中该容器的运行状态修改为运行完成状态。如果所有容器均处于运行完成状态,则执行节点可以生成任务执行结果,该任务执行结果将显示任务执行完成。
步骤S226,执行节点向调度节点发送任务执行结果。
进一步需要说明的是,在容器平台创建容器时可以创建不同类型的容器,例如通过kubernetes创建docker容器时可以创建不同的类型的容器。一些类型的容器,在创建时可以设置为只要作业任务执行完成即自动结束,因此,这些类型的容器不需要执行节点主动发送指令进行删除,而可以在执行完成后自动释放。
此外,在本发明的一个实施例中,容器平台可以不主动反馈容器上的作业执行结果,执行节点需要通过轮询的方式确定各个容器的作业执行结果,以确定作业是否执行完成。例如,执行节点按照预定时间间隔轮询各个容器节点的作业执行结果。
可选地,在作业执行过程中,执行节点也可以主动向容器平台查询各个容器的作业执行情况。具体地,执行节点可以查询预定数据库存储的对应关系,确定所述作业对应的容器,向容器平台发送作业执行状态查询请求,所述作业执行状态查询请求中携带有所述作业对应的容器的容器标识。
容器平台接收执行节点的作业执行状态查询请求,根据作业执行状态查询请求中携带的容器标识,获取所述容器标识对应的容器的作业执行状态,将所述作业执行状态反馈至执行节点。执行节点即可接收到容器平台反馈的所述容器标识对应的容器的作业执行状态。
实施例三
本实施例提供了一种分布式任务处理方法,该方法可以应用于上述的执行节点。图3示出了该分布式任务处理方法的流程图,如图3所示,该方法包括如下步骤:
步骤S302,接收调度节点派发的待处理任务。所述待处理任务可以包括工作流实例。
步骤S304,确定待处理任务对应的多个作业。
执行节点接收到调度节点派发的待处理任务,可以将待处理任务分为多个作业。所述作业可以理解为线程。
步骤S306,为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业。
执行节点可以向容器平台发送作业执行请求,所述作业执行请求中携带有所述多个作业,以使容器平台为每个作业创建对应的容器,并使所述容器执行所述作业。所述容器可以是Docker容器。
在向容器平台发送作业执行请求之后,执行节点还可以接收容器平台反馈的作业与容器的对应关系,将作业与容器的对应关系存储至预定数据库中。其中,预定数据库可以保存在执行节点本地,也可以保存在与执行节点连接的其它存储设备或网络存储设备上。将预定数据库保存在与执行节点连接的其它存储设备或网络存储设备上,可以避免执行节点出现故障时,预定数据库中的数据受损,提高存储数据的可靠性。
可选地,在作业执行过程中,执行节点也可以向容器平台查询各个容器的作业执行情况。具体地,执行节点可以查询预定数据库存储的对应关系,确定所述作业对应的容器,向容器平台发送作业执行状态查询请求,所述作业执行状态查询请求中携带有所述作业对应的容器的容器标识,接收容器平台反馈的所述容器标识对应的容器的作业执行状态。
可选地,执行节点可以接收容器平台发送的各个容器的作业执行结果,如果根据作业执行结果确定所述作业已执行完成,向容器平台发送容器删除指令,其中,容器删除指令携带有预删除的容器的容器标识等,用于指示删除所述已执行完成的作业对应的容器。
如果执行节点接收到所有容器的作业执行结果,可以根据作业执行结果生成任务执行结果,向调度节点反馈待处理任务的任务执行结果。
本发明实施例提供的分布式任务处理方法,执行节点接收到调度节点派发的待处理任务,确定待处理任务对应的多个作业;为每个作业创建对应的容器,通过作业对应的容器执行所述作业,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。
实施例四
本实施例提供了一种分布式任务处理方法,该方法可以应用于上述的容器平台。图4示出了该分布式任务处理方法的流程图,如图4所示,该方法包括如下步骤:
步骤S402,接收执行节点发送的作业执行请求。
所述作业执行请求中携带有待处理任务对应的多个作业。
步骤S404,为每个作业创建对应的容器,并将每个作业发送至对应的容器,以使所述容器执行所述作业。
其中,不同的容器可以位于同一服务器或物理机上,也可以位于不同的服务器或物理机上。所述容器可以是Docker容器。容器平台在为每个作业创建对应的Docker容器的同时,启动相应的作业,使作业在对应的Docker容器中执行。例如,容器平台在创建Docker容器的命令中包含启动作业的参数,创建Docker容器的同时启动作业。
可选地,容器平台在为每个所述作业创建对应的容器后,向执行节点反馈作业与容器的对应关系。作业与容器的对应关系可以理解为将作业的信息与对应的Docker容器的信息相关联。其中,作业的信息可以包括每个作业唯一对应的作业ID,Docker容器的信息可以包括Docker容器的容器标识和地址信息等,容器标识可以是与每个Docker容器唯一对应的容器ID。Docker容器的信息还可以包括Docker容器的运行状态信息,Docker容器的运行状态信息分为运行状态和运行完成状态,当某个Docker容器刚建立时,该Docker容器处于运行状态,当该Docker容器将对应的作业执行完成后,该Docker容器处于运行完成状态。
可选地,容器平台还可以接收执行节点的作业执行状态查询请求,所述作业执行状态查询请求中携带有容器标识。根据容器标识,获取容器标识对应的容器的作业执行状态,将所述作业执行状态反馈至执行节点。
可选地,容器平台还可以接收执行节点在确定作业已执行完成后发送的容器删除指令。其中,所述容器删除指令用于指示删除所述已执行完成的作业对应的容器。根据所述容器删除指令,删除容器删除指令对应的容器。譬如,容器删除指令携带有预删除的容器的容器标识,容器平台根据容器删除指令,删除该容器标识对应的容器。
本发明实施例提供的分布式任务处理方法,执行节点通过容器平台为所述多个作业中的每个作业创建对应的容器,通过作业对应的容器执行所述作业,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。
实施例五
与上述实施例三所提供的分布式任务处理方法相对应地,本实施例提供了一种分布式任务处理装置,该装置应用于上述的执行节点。如图5所示,该分布式任务处理装置包括:
第一作业接收模块51,用于接收调度节点派发的待处理任务;确定所述待处理任务对应的多个作业;所述待处理任务可以包括工作流实例;
作业执行模块52,用于为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业。所述容器可以为Docker容器。
其中,所述作业执行模块52还可以用于:向容器平台发送作业执行请求,所述作业执行请求中携带有所述多个作业,以使所述容器平台为每个所述作业创建对应的容器,并使所述作业对应的容器执行所述作业。
所述作业执行模块52还可以用于:接收所述容器平台反馈的所述作业与所述容器的对应关系;将所述作业与所述容器的对应关系存储至预定数据库中。
在一种可选的实施例中,上述装置还可以包括查询模块,查询模块与作业执行模块52连接,用于查询所述预定数据库存储的对应关系,确定所述作业对应的容器;向所述容器平台发送作业执行状态查询请求,所述作业执行状态查询请求中携带有所述作业对应的容器的容器标识;接收所述容器平台反馈的所述容器标识对应的容器的作业执行状态。
所述作业执行模块52还可以用于:接收所述容器平台发送的各个容器的作业执行结果;如果根据所述作业执行结果确定所述作业已执行完成,向所述容器平台发送容器删除指令;所述容器删除指令用于指示删除所述已执行完成的作业对应的容器。
在另一种可选的实施例中,上述装置还包括结果反馈模块,结果反馈模块与作业执行模块52连接,用于如果接收到所有容器的作业执行结果,根据所述作业执行结果生成任务执行结果;向所述调度节点反馈所述待处理任务的任务执行结果。
本发明实施例提供的分布式任务处理装置,执行节点接收到调度节点派发的待处理任务,确定待处理任务对应的多个作业;为每个作业创建对应的容器,通过作业对应的容器执行所述作业,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。
实施例六
与上述实施例四所提供的分布式任务处理方法相对应地,本实施例提供了一种分布式任务处理装置,该装置应用于上述的容器平台。如图6所示,该分布式任务处理装置包括:
第二作业接收模块61,用于接收执行节点发送的作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
容器创建模块62,用于为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
所述容器创建模块62还可以用于:向所述执行节点反馈所述作业与所述容器的对应关系。
在一种可选的实施例中,该装置还可以包括查询反馈模块,查询反馈模块与容器创建模块62连接,用于接收所述执行节点的作业执行状态查询请求,所述作业执行状态查询请求中携带有容器标识;根据所述容器标识,获取所述容器标识对应的容器的作业执行状态;将所述作业执行状态反馈至所述执行节点。
在另一种可选的实施例中,该装置还可以包括还包括容器删除模块,容器删除模块与容器创建模块62连接,用于接收所述执行节点在确定作业已执行完成后发送的容器删除指令;所述容器删除指令用于指示删除所述已执行完成的作业对应的容器;根据所述容器删除指令,删除所述容器删除指令对应的容器。
本发明实施例提供的分布式任务处理装置,可以为执行节点确定的多个作业中的每个作业创建对应的容器,通过作业对应的容器执行所述作业,可以保证在执行节点升级过程中,该执行节点执行的任务不受影响,有助于提高任务的执行速度,改善用户体验。
实施例七
本实施例提供了一种服务器,该服务器可以是上述的执行节点,也可以是容器平台。图7示出了该服务器的结构示意图,如图7所示,该服务器包括处理器71和存储器72。其中,存储器72用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述分布式任务处理方法。图7所示的设备还包括总线73,处理器71和存储器72通过总线73连接。
其中,存储器72可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。总线73可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器71可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器71中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器71可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器72,处理器71读取存储器72中的信息,结合其硬件完成前述实施例三或实施例四的方法的步骤。
进一步地,本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现前述实施例三或实施例四的方法。
本发明实施例提供的分布式任务处理方法、装置、服务器和分布式任务处理系统具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
需要说明的是,在本发明所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。

Claims (18)

1.一种分布式任务处理方法,其特征在于,所述方法应用于执行节点,所述方法包括:
接收调度节点派发的待处理任务;
确定所述待处理任务对应的多个作业;
为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业。
2.根据权利要求1所述的方法,其特征在于,为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业的步骤,包括:
向容器平台发送作业执行请求,所述作业执行请求中携带有所述多个作业,以使所述容器平台为每个所述作业创建对应的容器,并使所述容器执行所述作业。
3.根据权利要求2所述的方法,其特征在于,所述向容器平台发送作业执行请求的步骤之后,所述方法还包括:
接收所述容器平台反馈的所述作业与所述容器的对应关系;
将所述作业与所述容器的对应关系存储至预定数据库中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
查询所述预定数据库存储的对应关系,确定所述作业对应的容器;
向所述容器平台发送作业执行状态查询请求,所述作业执行状态查询请求中携带有所述作业对应的容器的容器标识;
接收所述容器平台反馈的所述容器标识对应的容器的作业执行状态。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
接收所述容器平台发送的各个容器的作业执行结果;
如果根据所述作业执行结果确定所述作业已执行完成,向所述容器平台发送容器删除指令,其中,所述容器删除指令用于指示删除所述已执行完成的作业对应的容器。
6.根据权利要求5所述的方法,其特征在于,接收所述容器平台发送的各个容器的作业执行结果的步骤之后,所述方法还包括:
如果接收到所有容器的作业执行结果,根据所述作业执行结果生成任务执行结果;
向所述调度节点反馈所述待处理任务的任务执行结果。
7.根据权利要求1所述的方法,其特征在于,所述容器为Docker容器。
8.根据权利要求1所述的方法,其特征在于,所述待处理任务包括工作流实例。
9.一种分布式任务处理方法,其特征在于,所述方法应用于容器平台,所述方法包括:
接收执行节点发送的作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
10.根据权利要求9所述的方法,其特征在于,在为每个所述作业创建对应的容器后,所述方法还包括:
向所述执行节点反馈所述作业与所述容器的对应关系。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述执行节点的作业执行状态查询请求,所述作业执行状态查询请求中携带有容器标识;
根据所述容器标识,获取所述容器标识对应的容器的作业执行状态;
将所述作业执行状态反馈至所述执行节点。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述执行节点在确定作业已执行完成后发送的容器删除指令,其中,所述容器删除指令用于指示删除所述已执行完成的作业对应的容器;
根据所述容器删除指令,删除所述容器删除指令对应的容器。
13.一种分布式任务处理装置,其特征在于,所述装置应用于执行节点,所述装置包括:
第一作业接收模块,用于接收调度节点派发的待处理任务;确定所述待处理任务对应的多个作业;
作业执行模块,用于为每个所述作业创建对应的容器,通过所述作业对应的容器执行所述作业。
14.一种分布式任务处理装置,其特征在于,所述装置应用于容器平台,所述装置包括:
第二作业接收模块,用于接收执行节点发送的作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
容器创建模块,用于为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
15.一种服务器,其特征在于,包括处理器和存储器,所述存储器中存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至12中任一项所述的方法。
16.一种分布式任务处理系统,其特征在于,包括调度节点,与所述调度节点连接的执行节点和与所述执行节点连接的容器平台;
所述调度节点用于获取待处理任务,将所述待处理任务派发给执行节点;
所述执行节点用于确定所述接收到的待处理任务对应的多个作业,并向容器平台发送作业执行请求,所述作业执行请求中携带有待处理任务对应的多个作业;
所述容器平台用于根据接收到的作业执行请求为每个所述作业创建对应的容器,并将每个所述作业发送至对应的容器,以使所述容器执行所述作业。
17.根据权利要求16所述的系统,其特征在于,所述容器平台还用于向所述执行节点发送各个容器的作业执行结果;所述执行节点还用于根据各个容器的作业执行结果向所述调度节点反馈所述待处理任务的任务执行结果。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1至12中任一项所述的方法。
CN201811631798.4A 2018-12-28 2018-12-28 分布式任务处理方法、装置、服务器和系统 Pending CN109766184A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811631798.4A CN109766184A (zh) 2018-12-28 2018-12-28 分布式任务处理方法、装置、服务器和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811631798.4A CN109766184A (zh) 2018-12-28 2018-12-28 分布式任务处理方法、装置、服务器和系统

Publications (1)

Publication Number Publication Date
CN109766184A true CN109766184A (zh) 2019-05-17

Family

ID=66452682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811631798.4A Pending CN109766184A (zh) 2018-12-28 2018-12-28 分布式任务处理方法、装置、服务器和系统

Country Status (1)

Country Link
CN (1) CN109766184A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673938A (zh) * 2019-09-23 2020-01-10 腾讯科技(深圳)有限公司 任务处理方法、系统、服务器及存储介质
CN110888722A (zh) * 2019-11-15 2020-03-17 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN110968400A (zh) * 2019-12-18 2020-04-07 深圳奇迹智慧网络有限公司 应用程序的执行方法、装置、计算机设备和存储介质
CN111694640A (zh) * 2020-06-10 2020-09-22 北京奇艺世纪科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111880921A (zh) * 2020-07-31 2020-11-03 平安国际智慧城市科技股份有限公司 基于规则引擎的作业处理方法、装置和计算机设备
CN112925630A (zh) * 2021-03-31 2021-06-08 第四范式(北京)技术有限公司 人工智能任务的提交管理方法、装置、设备及介质
CN117519989A (zh) * 2024-01-03 2024-02-06 上海燧原智能科技有限公司 一种分布式系统托管方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034475A (zh) * 2011-10-08 2013-04-10 中国移动通信集团四川有限公司 分布式并行计算方法、装置及系统
CN105871580A (zh) * 2015-11-02 2016-08-17 乐视致新电子科技(天津)有限公司 跨集群自动化部署运维系统及方法
CN106484886A (zh) * 2016-10-17 2017-03-08 金蝶软件(中国)有限公司 一种数据采集的方法及其相关设备
CN106649732A (zh) * 2016-12-23 2017-05-10 金蝶软件(中国)有限公司 一种信息推送方法及装置
CN108089924A (zh) * 2017-12-18 2018-05-29 郑州云海信息技术有限公司 一种任务运行方法及装置
US20180248780A1 (en) * 2017-02-28 2018-08-30 International Business Machines Corporation Injection method of monitoring and controlling task execution in a distributed computer system
CN108920259A (zh) * 2018-03-30 2018-11-30 华为技术有限公司 深度学习作业调度方法、系统和相关设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034475A (zh) * 2011-10-08 2013-04-10 中国移动通信集团四川有限公司 分布式并行计算方法、装置及系统
CN105871580A (zh) * 2015-11-02 2016-08-17 乐视致新电子科技(天津)有限公司 跨集群自动化部署运维系统及方法
CN106484886A (zh) * 2016-10-17 2017-03-08 金蝶软件(中国)有限公司 一种数据采集的方法及其相关设备
CN106649732A (zh) * 2016-12-23 2017-05-10 金蝶软件(中国)有限公司 一种信息推送方法及装置
US20180248780A1 (en) * 2017-02-28 2018-08-30 International Business Machines Corporation Injection method of monitoring and controlling task execution in a distributed computer system
CN108089924A (zh) * 2017-12-18 2018-05-29 郑州云海信息技术有限公司 一种任务运行方法及装置
CN108920259A (zh) * 2018-03-30 2018-11-30 华为技术有限公司 深度学习作业调度方法、系统和相关设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
潘佳艺等: "异构Hadoop集群下的负载自适应反馈调度策略", 《计算机工程与科学》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673938A (zh) * 2019-09-23 2020-01-10 腾讯科技(深圳)有限公司 任务处理方法、系统、服务器及存储介质
CN110673938B (zh) * 2019-09-23 2021-05-28 腾讯科技(深圳)有限公司 任务处理方法、系统、服务器及存储介质
CN110888722A (zh) * 2019-11-15 2020-03-17 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN110888722B (zh) * 2019-11-15 2022-05-20 北京奇艺世纪科技有限公司 任务处理方法、装置、电子设备及计算机可读存储介质
CN110968400A (zh) * 2019-12-18 2020-04-07 深圳奇迹智慧网络有限公司 应用程序的执行方法、装置、计算机设备和存储介质
CN110968400B (zh) * 2019-12-18 2022-10-18 深圳奇迹智慧网络有限公司 应用程序的执行方法、装置、计算机设备和存储介质
CN111694640A (zh) * 2020-06-10 2020-09-22 北京奇艺世纪科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111694640B (zh) * 2020-06-10 2023-04-21 北京奇艺世纪科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111880921A (zh) * 2020-07-31 2020-11-03 平安国际智慧城市科技股份有限公司 基于规则引擎的作业处理方法、装置和计算机设备
CN112925630A (zh) * 2021-03-31 2021-06-08 第四范式(北京)技术有限公司 人工智能任务的提交管理方法、装置、设备及介质
CN117519989A (zh) * 2024-01-03 2024-02-06 上海燧原智能科技有限公司 一种分布式系统托管方法、装置、电子设备及存储介质
CN117519989B (zh) * 2024-01-03 2024-04-02 上海燧原智能科技有限公司 一种分布式系统托管方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109766184A (zh) 分布式任务处理方法、装置、服务器和系统
CN106301829B (zh) 一种网络业务扩容的方法和装置
CN111338784B (zh) 一种实现代码仓库与计算服务整合的方法及系统
CN107613025B (zh) 一种基于消息队列顺序回复的实现方法和装置
CN109491777A (zh) 任务执行方法、装置、设备及存储介质
CN107370796B (zh) 一种基于Hyper TF的智能学习系统
CN104503845A (zh) 一种任务分发方法和系统
US20110179151A1 (en) Tuning and optimizing distributed systems with declarative models
CN115840631B (zh) 基于raft的高可用分布式任务调度方法和设备
CN110458468A (zh) 一种任务处理方法、装置、电子设备及存储介质
CN110300130A (zh) 一种资源调度方法、装置、电子设备及存储介质
CN113312161A (zh) 一种应用调度方法、平台及存储介质
CN113110930A (zh) 决策问题的云化解决方法、系统、服务器及存储介质
CN106293911A (zh) 分布式调度系统、方法
US7657590B2 (en) Load balancing system and method
CN113626173B (zh) 调度方法、装置及存储介质
CN108028806A (zh) 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置
CN116048825A (zh) 容器集群构建方法及系统
CN113760499A (zh) 调度计算单元的方法、装置、计算设备及介质
CN115225482B (zh) 一种基于Kubernetes进行Pod容器网络配置的方法及装置
CN115361382B (zh) 基于数据群组的数据处理方法、装置、设备和存储介质
CN111158877A (zh) 大数据平台的事件管理方法、装置及计算机可读存储介质
CN110162381A (zh) 一种容器内代理执行方法
CN113626047B (zh) Flume自动部署的系统及方法
CN109450913A (zh) 一种基于策略的多节点注册调度方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190517