CN110602253B - 一种任务调度方法、装置及系统 - Google Patents
一种任务调度方法、装置及系统 Download PDFInfo
- Publication number
- CN110602253B CN110602253B CN201910945613.5A CN201910945613A CN110602253B CN 110602253 B CN110602253 B CN 110602253B CN 201910945613 A CN201910945613 A CN 201910945613A CN 110602253 B CN110602253 B CN 110602253B
- Authority
- CN
- China
- Prior art keywords
- big data
- target
- data cluster
- execution server
- server
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种任务调度方法、装置及系统,所述方法包括:当检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,以使所述目标执行服务器根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。应用本发明实施例可以提高执行服务器的部署效率,缩短调度任务的响应时间。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种任务调度方法、装置及系统。
背景技术
大数据(big data),或称巨量数据,指的是所涉及的资料量规模巨大到无法通过传统的数据处理工具,在合理时间内进行撷取、管理以及处理。
随着Hadoop,Spark,Flink等大数据技术的兴起,对大数据的处理带来了革命性的改变。面对复杂的数据处理场景时,需要更加细粒度的任务拆分,往往一项大数据技术并不能独立完成,而是多种大数据技术,多个子任务来共同完成。多项任务的协调管理,以及解决任务间依赖关系变得非常重要。
Apache Azkaban(简称Azkaban)是一种用于解决Hadoop任务调度依赖关系的调度管理系统。
Azkaban包括三部分:MySQL(关系型数据库)、Azkaban Web Server(Azkaban网页服务器,简称Web Server)以及Azkaban Executor Server(Azkaban执行服务器,简称Executor Server);其中:
MySQL用于存储project(项目)和执行流状态等;
Web Server是整个Azkaban工作流系统的主要管理者,负责project管理、用户登录认证、定时执行工作流、跟踪工作流执行进度等一系列任务。同时,还提供Web服务操作的接口,利用该接口,可以执行Azkaban的相关操作。
Executor Server主要负责具体的工作流的提交、执行。
在云时代中,以Docker和Kubernetes为基础的容器技术,为应用的运维带来了极大的便利。将应用系统部署在容器中,并以容器技术的优势,可以非常方便对应用进行管理以及升级。
目前,主流的Azkaban的容器化实现方案为:将Web Server容器化部署,但是Executor Server与大数据集群部署在一起。Web Server将任务的调度信息下发到Executor Server上,所有大数据任务直接在集群上运行。当Azkaban需要纳管多个大数据集群时,对于每一个被纳管的大数据集群,需要在被纳管的大数据集群的某台主机上,人工安装Executor Server。
实践发现,上述Azkaban的容器化实现方案中,每当Azkaban纳管一个大数据集群时,需要人工安装对应的Executor Server,实现效率低,调度任务响应慢。
发明内容
本发明提供一种任务调度方法、装置及机器可读存储介质,以解决现有Azkaban的容器化实现方案调度任务响应慢的问题。
根据本发明的第一方面,提供一种任务调度方法,应用于管理服务器,所述方法包括:
当检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;
基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,以使所述目标执行服务器根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并使所述目标执行服务器在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
根据本发明的第二方面,提供一种任务调度方法,应用于网页服务器,所述网页服务器运行在容器中,所述方法包括:
当接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;
基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器,以使所述目标执行服务器通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述目标执行服务器运行在另一容器中。
根据本发明的第三方面,提供一种任务调度方法,应用于执行服务器,所述执行服务器运行在容器中,所述方法包括:
当接收管理服务器发送的目标大数据集群的集群信息时,根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息;
当接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
根据本发明的第四方面,提供一种任务调度装置,应用于管理服务器,所述装置包括:
检测单元,用于检测针对大数据集群的纳管指令;
获取单元,用于当所述检测单元检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;
启动单元,用于基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,以使所述目标执行服务器根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
根据本发明的第五方面,提供一种任务调度装置,应用于网页服务器,所述网页服务器运行在容器中,所述装置包括:
接收单元,用于接收任务调度指令;
获取单元,用于当所述接收单元接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;
调度单元,用于基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器,以使所述目标执行服务器通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述目标执行服务器运行在另一容器中。
根据本发明的第六方面,提供一种任务调度装置,应用于执行服务器,所述执行服务器运行在容器中,所述装置包括:
接收单元,用于接收管理服务器发送的目标大数据集群的集群信息;
获取单元,用于根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息;
所述接收单元,还用于接收运行在第二容器中的网页服务器下发的工作流;
发送单元,用于基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
根据本发明的第七方面,提供一种任务调度系统,包括管理服务器、网页服务器和执行服务器,所述网页服务器和所述执行服务器运行在不同的容器中;其中:
所述管理服务器,用于当检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端;
所述网页服务器,用于当接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器;
所述执行服务器,用于当所述执行服务器为所述目标执行服务器时,根据接收到的所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
应用本发明公开的技术方案,通过预先配置包括用于远程提交任务的客户端的执行服务器镜像,当检测到针对目标大数据集群的纳管指令时,获取目标大数据集群的集群信息,并基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,将所述目标大数据集群的集群信息发送给目标执行服务器,以使目标执行服务器根据目标大数据集群的集群信息获取目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于目标大数据集群的配置信息,通过用于远程提交任务的客户端向目标大数据集群提交任,实现了Azkaban的完全容器化,以及执行服务器的动态启动,提高了执行服务器的部署效率,缩短了调度任务的响应时间。
附图说明
图1是本发明实施例提供的一种任务调度系统的架构示意图;
图2是本发明实施例提供的一种任务调度方法的流程示意图;
图3是本发明实施例提供的一种数据任务调度方法的流程示意图;
图4是本发明实施例提供的一种任务调度方法的流程示意图;
图5是本发明实施例提供的一种Azkaban容器化部署的场景示意图;
图6是本发明实施例提供的一种Azkaban容器化部署场景下集群纳管以及任务调度的流程示意图;
图7是本发明实施例提供的一种任务调度装置的结构示意图;
图8是本发明实施例提供的一种任务调度装置的结构示意图;
图9是本发明实施例提供的一种任务调度装置的结构示意图;
图10是本发明实施例提供的一种任务调度系统的架构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例适用的系统架构进行简单说明。
请参见图1,为本申请实施例提供的一种任务调度系统的架构示意图,如图1所示,任务调度系统可以采用multiple-executor(多执行器)模式,MySQL,Web Server和Executor Server运行在不同的机器上,并且支持多个Executor Server。
在该任务调度系统中,Azkaban采用完全容器化部署方案,即MySQL、Web Server以及Executor Server均部署在不同的容器中。
示例性的,图1所示系统架构中,以MySQL、Web Server以及Executor Server均部署在Docker容器,并运行在Kubernetes(一种开源的容器编排引擎,简称K8s)集群中为例。
在图1所示任务调度系统中,为了实现Executor Server向大数据集群远程提交任务,需要在Executor中安装用于远程提交任务的客户端,例如可以远程提交MapReduce、Spark、HBase、HDFS或Hive等任务。
为了实现动态启动Executor Server来对应新纳管的大数据集群,可以预先配置包括用于远程提交任务的客户端的Executor Server镜像,并在任务调度系统中部署Azkaban Manager Server(Azkaban管理服务器,简称Manager Server),该Manager Server用于响应大数据集群纳管指令,基于预先配置的Executor Server镜像,启动与新纳管的大数据集群对应的Executor Server。
为了使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图2,为本发明实施例提供的一种任务调度方法的流程示意图,其中,该任务调度方法可以应用于管理服务器,如图1所示任务调度系统中的Manager Server,如图2所示,该任务调度方法可以包括以下步骤:
步骤201、当检测到针对目标大数据集群的纳管指令时,获取目标大数据集群的集群信息。
本发明实施例中,目标大数据集群并不特指某一固定的大数据集群,而是可以指代任一可以被Azkaban纳管的大数据集群,包括但不限于HDFS集群、Spark集群或Hadoop集群等。
本发明实施例中,可以通过调用Manager Server的接口,传入被纳管的大数据集群的集群信息,如集群名称、IP地址等,以触发针对目标大数据集群的纳管处理。
步骤202、基于预先配置的执行服务器镜像,在第一容器中启动与目标大数据集群对应的目标执行服务器,并将目标大数据集群的集群信息发送给目标执行服务器,以使目标执行服务器根据目标大数据集群的集群信息获取目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于目标大数据集群的配置信息,通过用于远程提交任务的客户端向目标大数据集群提交任务;其中,预先配置的执行服务器镜像中包括用于远程提交任务的客户端。
本发明实施例中,当Manager Server接收到针对目标大数据集群的纳管指令,并获取到目标大数据集群的集群信息时,可以基于预先配置的执行服务器镜像,在容器(本文中称为第一容器)中启动与目标大数据集群对应的Executor Server(本文中称为目标Executor Server),并将目标大数据集群信息发送给目标Executor Server。
目标Executor Server可以基于目标大数据集的集群信息,获取目标大数据集群的配置信息,如目标大数据集群的集群组件的配置信息(IP地址、端口等信息)。
例如,目标Executor Server可以调用目标大数据集群的RESTful(一种REST(Representational State Transfer,表征状态转移)风格的Web服务)接口,获取目标大数据集群的集群组件的配置信息。
当目标Executor Server接收到运行在容器(本文中称为第二容器)中的WebServer下发的工作流时,目标Executor Server可以基于目标大数据集群的配置信息,通过用于远程提交任务的客户端向目标大数据集群提交任务。
其中,Executor Server根据工作流,按序将任务提交给目标大数据集群,并当当前执行的任务完成后,提交下一任务的具体实现流程,以及目标大数据集群对任务的执行流程在此不做赘述。
可见,在图2所示方法流程中,通过预先配置包括用于远程提交任务客户端的执行服务器镜像,当存在新的大数据集群被纳管时,可以基于该预先配置的执行服务器镜像,在容器中启动与新纳管的大数据集群对应的执行服务器,由该执行服务器在接收到网页服务器下发的工作流时,通过用于远程提交任务的客户端,向新纳管的大数据集群下发任务,实现了Azkaban的完全容器化,以及执行服务器的动态启动,提高了执行服务器的部署效率,缩短了调度任务的响应时间。
在本发明其中一个实施例中,上述基于预先配置的执行服务器镜像,在第一容器中启动与目标大数据集群对应的目标执行服务器,并将目标大数据集群的集群信息发送给所述目标执行服务器,可以包括:
将目标大数据集群的集群信息,以环境变量的形式注入到预先配置的执行服务器镜像的启动文件,以在第一容器中启动所述目标执行服务器。
在该实施例中,Manager Server获取到目标大数据集群的集群信息时,可以将目标大数据集群的集群信息,以环境变量的形式注入到预先配置的执行服务器镜像的启动文件,如启动YAML(YAML Ain't Markup Language,YAML不是一种标记语言)文件,以触发目标执行服务器在第一容器中启动。
请参见图3,为本发明实施例提供的一种任务调度方法的流程示意图,其中,该任务调度方法可以应用于网页服务器,该网页服务器运行在容器(如上述第二容器)中,如图1所示任务调度系统中的Web Server,如图3所示,该任务调度方法可以包括以下步骤:
步骤301、当接收到针对目标大数据集群的任务调度指令时,获取该任务调度指令中携带的工作流。
本发明实施例中,当需要对目标大数据集群进行任务调度时,可以向Web Server发送针对目标大数据集群的任务调度指令,该任务调度指令中可以携带目标大数据集群的标识以及待调度的工作流。
当Web Server接收到针对目标大数据集群的任务调度指令时,可以获取该任务调度指令中携带的工作流。
步骤302、基于目标大数据集群与目标执行服务器的对应关系,将工作流下发至目标执行服务器,以使目标执行服务器通过用于远程提交任务的客户端向目标大数据集群提交任务;其中,所述目标执行服务器运行在另一容器中。
本发明实施例中,Web Server可以维护已经启动的Executor Server与大数据集群的对应关系。
当Web Server接收到针对目标大数据集群的任务调度指令,并获取到了该任务调度指令中携带的工作流时,可以通过查询自身维护的Executor Server与大数据集群的对应关系,以确定目标大数据集群与执行服务器(以上述目标执行服务器为例)的对应关系,并将工作流下发到运行在另一容器(如上述第一容器)中的目标执行服务器,由目标执行服务器向目标大数据集群提交任务。
在一个示例中,大数据集群与Executor Server的对应关系可以由ExecutorServer在启动时向Web服务器上报。
相应地,上述基于目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至目标执行服务器之前,还包括:
接收目标执行服务器上报的目标大数据集群与目标执行服务器的对应关系;其中,目标大数据集群与目标执行服务器的对应关系由目标执行服务器在另一个容器中启动时上报给所述网页服务器。
示例性的,目标Executor Server完成启动时,可以将目标Executor Server与目标大数据集群的对应关系上报给Web Server,以使Web Server维护目标Executor Server与目标大数据集群的对应关系,进而,当Web Server接收到针对目标大数据集群的任务调度指令时,可以基于该对应关系,将对应的工作流下发给目标Executor Server,由Executor Server进行任务下发。
其中,目标Executor Server启动,以及目标Executor Server向目标大数据集群下发任务的具体实现可以参见图2所示方法流程中的相关描述,本发明实施例在此不做赘述。
需要说明的是,在本发明实施例中,Web Server获取Executor Server与大数据集群的对应关系,并不限于通过Executor Server向Web Server上报的方式,也可以通过其他方式实现,如Executor Server将该Executor Server与大数据集群的对应关系写入数据库(如MySQL),Web Server可以从数据库中读取Executor Server与大数据集群的对应关系,其具体实现在此不做赘述。
请参见图4,为本发明实施例提供的一种任务调度方法的流程示意图,其中,该任务调度方法可以应用于执行服务器,该执行服务器运行在容器(如上述第一容器)中,如图1所示任务调度系统中的Executor Server,如图4所示,该任务调度方法可以包括以下步骤:
步骤401、当接收管理服务器发送的目标大数据集群的集群信息时,根据目标大数据集群的集群信息获取目标大数据集群的配置信息。
本发明实施例中,Manager Server向Executor Server下发大数据集群的集群信息的具体实现可以参见图2所示流程中的相关描述,本发明实施例在此不做赘述。
本发明实施例中,当Executor Server接收到目标大数据服务器的配置信息时,可以基于目标大数据集的集群信息,获取目标大数据集群的配置信息,如目标大数据集群的集群组件的配置信息(IP地址、端口等信息)。
例如,Executor Server可以调用目标大数据集群的RESTful接口,获取目标大数据集群的集群组件的配置信息。
步骤402、当接收到运行在第二容器中的网页服务器下发的工作流时,基于目标大数据集群的配置信息,通过用于远程提交任务的客户端向目标大数据集群提交任务。
本发明实施例中,Web Server向Executor Server下发工作流的具体实现可以参见图3所示方法流程中的相关描述,本发明实施例在此不做赘述。
本发明实施例中,当Executor Server接收到Web Server下发的工作流时,可以基于目标大数据集群的配置信息,通过远程提交任务的客户端向目标大数据集群提交任务。
其中,Executor Server根据工作流,按序将任务提交给目标大数据集群,并当当前执行的任务完成后,提交下一任务的具体实现流程,以及目标大数据集群对任务的执行流程在此不做赘述。
在一个示例中,大数据集群与Executor Server的对应关系可以由ExecutorServer在启动时向Web服务器上报。
相应地,接收运行在第二容器中的网页服务器下发的工作流之前,还可以包括:
向网页服务器上报目标大数据集群与所述执行服务器的对应关系。
在一个示例中,大数据集群与Executor Server的对应关系可以由ExecutorServer在启动时向Web服务器上报。
相应地,上述基于目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至目标执行服务器之前,还包括:
示例性的,Executor Server完成启动时,可以将Executor Server与大数据集群(以目标大数据集群为例)的对应关系上报给Web Server,以使Web Server维护ExecutorServer与目标大数据集群的对应关系,进而,当Web Server接收到针对目标大数据集群的任务调度指令时,可以基于该对应关系,将对应的工作流下发给该Executor Server,由该Executor Server进行任务下发。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行说明。
请参见图5,为本发明实施例提供的一种Azkaban容器化部署的场景示意图,如图5所示,Azkaban采用multiple-executor模式,MySQL、Web Server和Executor Server运行在不同的机器上,且均部署在不同的Docker容器中,并运行在K8s集群中。
在该场景中,为了实现Executor Server向大数据集群远程提交任务,可以在Executor Server中安装用于远程提交任务的客户端(可以称为组件Client(客户端)),该组件Client可以对应不同的大数据组件,例如HDFS、Spark等,且可以安装在任意的主机上。
通过在该组件Client中添加集群组件的配置信息(例如IP,端口等信息),可以向对应的大数据集群远程提交任务,以达到Executor Server安装在大数据集群上的效果。
在该实施例中,Azkaban容器化部署的实现流程可以如下:
1、通过对Web Server的源代码进行编译,生成Web Server的Docker镜像;同理,MySOL也可以按照类似的方式生成Docker镜像,或者,MySQL的Docker镜像也可以直接从指定网站中获取。
2、对于Executor Server,在生成Docker镜像时,除了需要对Executor Server的源代码进行编译之外,还需要将用于远程提交任务的组件Client,如用于远程提交MapReduce、Spark、HBase、HDFS或Hive等任务的组件Client,一起包含在Executor Server的Docket镜像中。
3、将Web Server、Executor Server以及MySQL部署在K8s集群。
示例性的,当系统初始化运行时,可以分别在不同容器上运行Web Server和MySQL,Executor按需启动,其具体启动流程可以在下文中描述。
4、Web Server下发给Executor Server的工作流,可以由Executor Server通过用于远程提交任务的组件Client,提交给对应的大数据集群。
下面结合附图对大数据集群的纳管以及任务调度的流程进行说明。
请参见图6,为本发明实施例提供的一种Azkaban容器化部署场景下集群纳管以及任务调度的流程示意图。
在该实施例中,为了实现动态Executor Server的动态启动,可以部署一个用于调用K8s集群的API(Application Programming Interface,应用程序编程接口)的模块(以上述Manager Server为例,该Manager Server与Web Server、Executor Server分别运行在不同容器中),将被纳管大数据集群的集群信息以环境变量形式,传入到Executor Sever镜像所在的容器,触发启动对应被纳管大数据集群的Executor Server。
示例性的,Manager Server可以提供Web UI或RESTful接口,用于传入被纳管大数据集群的集群信息。
如图6所示,Azkaban容器化部署场景下集群纳管以及任务调度的流程可以包括:
1、Manager Server接收被纳管大数据集群的集群信息,如集群名称和IP地址。
2、Manager Server调用K8s集群的API,将被纳管大数据集群的集群信息,以环境变量的形式注入到Executor Server镜像的启动YAML文件,以触发与被纳管大数据集群对应的Executor Server在容器中启动。
3、Executor Server启动过程中,基于被纳管大数据集群的集群信息,调用被纳管大数据集群的RESTful接口,获取集群组件的配置信息,以保证Executor Server可以远程提交任务到对应大数据集群。
示例性的,Executor Server完成启动时,可以将该Executor Server与该被纳管大数据集群的对应关系(以上述目标Executor Server与目标大数据集群的对应关系为例)上报给Web服务器。
4、当Web Server接收到针对被纳管服务器的任务调度指令时,获取该任务调度指令中携带的工作流,并基于自身维护的Executor Server与大数据集群的对应关系,将工作流下发给对应的Executor Server。
在一个示例中,Manager Server可以提供用于进行任务编排的Web UI(UserInterface,用户界面),基于该Web UI,可以通过拖拽的方式进行任务编排,对新增任务、删除任务、编排任务的执行顺序以及依赖关系等。
Manager Server根据检测到的基于该Web UI输入的任务编排指令,生成工作流,并调用Azkaban集群提供的接口,通过任务调度指令的形式将该工作流下发给Web Server。
5、Executor Server接收到Web Server下发的工作流时,基于对应的大数据集群的集群组件的配置信息,通过用于远程提交任务的组件Client,将工作流对应的任务远程提交给对应的大数据集群。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过预先配置包括用于远程提交任务的客户端的执行服务器镜像,当检测到针对目标大数据集群的纳管指令时,获取目标大数据集群的集群信息,并基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,将所述目标大数据集群的集群信息发送给目标执行服务器,以使目标执行服务器根据目标大数据集群的集群信息获取目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于目标大数据集群的配置信息,通过用于远程提交任务的客户端向目标大数据集群提交任,实现了Azkaban的完全容器化,以及执行服务器的动态启动,提高了执行服务器的部署效率,缩短了调度任务的响应时间。
请参见图7,为本发明实施例提供一种任务调度装置的结构示意图,其中,该任务调度装置可以应用于上述方法实施例中的管理服务器,如图7所示,该任务调度装置可以包括:
检测单元710,用于检测针对大数据集群的纳管指令;
获取单元720,用于当所述检测单元检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;
启动单元730,用于基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,以使所述目标执行服务器根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
在可选实施例中,所述启动单元730,具体用于将所述目标大数据集群的集群信息,以环境变量的形式注入到预先配置的执行服务器镜像的启动文件,以在所述第一容器中启动所述目标执行服务器。
请参见图8,为本发明实施例提供一种任务调度装置的结构示意图,其中,该任务调度装置可以应用于上述方法实施例中的网页服务器,如图8所示,该任务调度装置可以包括:
接收单元810,用于接收任务调度指令;
获取单元820,用于当所述接收单元接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;
调度单元830,用于基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器,以使所述目标执行服务器通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述目标执行服务器运行在另一容器中。
在可选实施例中,所述接收单元810,还用于接收所述目标执行服务器上报的所述目标大数据集群与所述目标执行服务器的对应关系;其中,所述目标大数据集群与所述目标执行服务器的对应关系由所述目标执行服务器在所述另一个容器中启动时上报给所述网页服务器。
请参见图9,为本发明实施例提供一种任务调度装置的结构示意图,其中,该任务调度装置可以应用于上述方法实施例中的执行服务器,如图9所示,该任务调度装置可以包括:
接收单元910,用于接收管理服务器发送的目标大数据集群的集群信息;
获取单元920,用于根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息;
所述接收单元910,还用于接收运行在第二容器中的网页服务器下发的工作流;
发送单元930,用于基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
在可选实施例中,所述发送单元930,还用于向所述网页服务器上报所述目标大数据集群与所述执行服务器的对应关系。
请参见图10,为本发明实施例提供一种任务调度系统的架构示意图,如图10所示,该任务调度系统包括管理服务器1010、网页服务器1020和执行服务器1030,所述网页服务器1020和所述执行服务器1030运行在不同的容器中;其中:
所述管理服务器1010,用于当检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端;
所述网页服务器1020,用于当接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器;
所述执行服务器1030,用于当所述执行服务器为所述目标执行服务器时,根据接收到的所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
在可选实施例中,所述执行服务器1030,还用于当所述执行服务器为所述目标执行服务器时,向所述网页服务器上报所述目标大数据集群与所述目标执行服务器的对应关系。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,通过预先配置包括用于远程提交任务的客户端的执行服务器镜像,当检测到针对目标大数据集群的纳管指令时,获取目标大数据集群的集群信息,并基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,将所述目标大数据集群的集群信息发送给目标执行服务器,以使目标执行服务器根据目标大数据集群的集群信息获取目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于目标大数据集群的配置信息,通过用于远程提交任务的客户端向目标大数据集群提交任,实现了Azkaban的完全容器化,以及执行服务器的动态启动,提高了执行服务器的部署效率,缩短了调度任务的响应时间。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (13)
1.一种任务调度方法,其特征在于,应用于管理服务器,所述方法包括:
当检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;
基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,以使所述目标执行服务器根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并使所述目标执行服务器在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
2.根据权利要求1所述的方法,其特征在于,所述基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,包括:
将所述目标大数据集群的集群信息,以环境变量的形式注入到预先配置的执行服务器镜像的启动文件,以在所述第一容器中启动所述目标执行服务器。
3.一种任务调度方法,其特征在于,应用于网页服务器,所述网页服务器运行在容器中,所述方法包括:
当接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;
基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器,以使所述目标执行服务器通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述目标执行服务器运行在另一容器中,所述目标执行服务器为管理服务器在检测到针对目标大数据集群的纳管指令,并获取到所述目标大数据集群的集群信息时,基于预先配置的执行服务器镜像,在该容器中启动的与所述目标大数据集群对应的执行服务器,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器之前,还包括:
接收所述目标执行服务器上报的所述目标大数据集群与所述目标执行服务器的对应关系;其中,所述目标大数据集群与所述目标执行服务器的对应关系由所述目标执行服务器在所述另一个容器中启动时上报给所述网页服务器。
5.一种任务调度方法,其特征在于,应用于执行服务器,所述执行服务器运行在容器中,所述方法包括:
当接收管理服务器发送的目标大数据集群的集群信息时,根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息;所述执行服务器为所述管理服务器在检测到针对所述目标大数据集群的纳管指令,并获取到所述目标大数据集群的集群信息时,基于预先配置的执行服务器镜像,在该所述容器中启动的与所述目标大数据集群对应的执行服务器;所述预先配置的执行服务器镜像中包括用于远程提交任务的客户端;
当接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
6.根据权利要求5所述的方法,其特征在于,接收运行在第二容器中的网页服务器下发的工作流之前,还包括:
向所述网页服务器上报所述目标大数据集群与所述执行服务器的对应关系。
7.一种任务调度装置,其特征在于,应用于管理服务器,所述装置包括:
检测单元,用于检测针对大数据集群的纳管指令;
获取单元,用于当所述检测单元检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;
启动单元,用于基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器,以使所述目标执行服务器根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
8.根据权利要求7所述的装置,其特征在于,
所述启动单元,具体用于将所述目标大数据集群的集群信息,以环境变量的形式注入到预先配置的执行服务器镜像的启动文件,以在所述第一容器中启动所述目标执行服务器。
9.一种任务调度装置,其特征在于,应用于网页服务器,所述网页服务器运行在容器中,所述装置包括:
接收单元,用于接收任务调度指令;
获取单元,用于当所述接收单元接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;
调度单元,用于基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器,以使所述目标执行服务器通过用于远程提交任务的客户端向所述目标大数据集群提交任务;其中,所述目标执行服务器运行在另一容器中,所述目标执行服务器为管理服务器在检测到针对目标大数据集群的纳管指令,并获取到所述目标大数据集群的集群信息时,基于预先配置的执行服务器镜像,在该容器中启动的与所述目标大数据集群对应的执行服务器,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端。
10.根据权利要求9所述的装置,其特征在于,
所述接收单元,还用于接收所述目标执行服务器上报的所述目标大数据集群与所述目标执行服务器的对应关系;其中,所述目标大数据集群与所述目标执行服务器的对应关系由所述目标执行服务器在所述另一个容器中启动时上报给所述网页服务器。
11.一种任务调度装置,其特征在于,应用于执行服务器,所述执行服务器运行在容器中,所述装置包括:
接收单元,用于接收管理服务器发送的目标大数据集群的集群信息;
获取单元,用于根据所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息;所述执行服务器为所述管理服务器在检测到针对所述目标大数据集群的纳管指令,并获取到所述目标大数据集群的集群信息时,基于预先配置的执行服务器镜像,在该所述容器中启动的与所述目标大数据集群对应的执行服务器;所述预先配置的执行服务器镜像中包括用于远程提交任务的客户端;
所述接收单元,还用于接收运行在第二容器中的网页服务器下发的工作流;
发送单元,用于基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
12.根据权利要求11所述的装置,其特征在于,
所述发送单元,还用于向所述网页服务器上报所述目标大数据集群与所述执行服务器的对应关系。
13.一种任务调度系统,其特征在于,包括管理服务器、网页服务器和执行服务器,所述网页服务器和所述执行服务器运行在不同的容器中;其中:
所述管理服务器,用于当检测到针对目标大数据集群的纳管指令时,获取所述目标大数据集群的集群信息;基于预先配置的执行服务器镜像,在第一容器中启动与所述目标大数据集群对应的目标执行服务器,并将所述目标大数据集群的集群信息发送给所述目标执行服务器;其中,所述预先配置的执行服务器镜像中包括所述用于远程提交任务的客户端;
所述网页服务器,用于当接收到针对目标大数据集群的任务调度指令时,获取所述任务调度指令中携带的工作流;基于所述目标大数据集群与目标执行服务器的对应关系,将所述工作流下发至所述目标执行服务器;
所述执行服务器,用于当所述执行服务器为所述目标执行服务器时,根据接收到的所述目标大数据集群的集群信息获取所述目标大数据集群的配置信息,并在接收到运行在第二容器中的网页服务器下发的工作流时,基于所述目标大数据集群的配置信息,通过用于远程提交任务的客户端向所述目标大数据集群提交任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910945613.5A CN110602253B (zh) | 2019-09-30 | 2019-09-30 | 一种任务调度方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910945613.5A CN110602253B (zh) | 2019-09-30 | 2019-09-30 | 一种任务调度方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110602253A CN110602253A (zh) | 2019-12-20 |
CN110602253B true CN110602253B (zh) | 2022-04-26 |
Family
ID=68865467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910945613.5A Active CN110602253B (zh) | 2019-09-30 | 2019-09-30 | 一种任务调度方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110602253B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258742B (zh) * | 2020-02-17 | 2023-08-04 | 杭州依图医疗技术有限公司 | 一种数据同步的方法、系统、计算设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
CN106325975A (zh) * | 2016-09-09 | 2017-01-11 | 浪潮软件股份有限公司 | 一种利用Docker容器自动化部署与管理大数据集群的方法 |
CN106371889A (zh) * | 2016-08-22 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 一种调度镜像的高性能集群系统实现方法及装置 |
CN106790483A (zh) * | 2016-12-13 | 2017-05-31 | 武汉邮电科学研究院 | 基于容器技术的Hadoop集群系统及快速构建方法 |
CN106850621A (zh) * | 2017-02-07 | 2017-06-13 | 南京云创大数据科技股份有限公司 | 一种基于容器云技术快速搭建Hadoop集群的方法 |
CN107733977A (zh) * | 2017-08-31 | 2018-02-23 | 北京百度网讯科技有限公司 | 一种基于Docker的集群管理方法及装置 |
CN109842642A (zh) * | 2017-11-24 | 2019-06-04 | 中兴通讯股份有限公司 | 一种容器化集群系统的部署方法及装置、容器化集群系统 |
-
2019
- 2019-09-30 CN CN201910945613.5A patent/CN110602253B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
CN106371889A (zh) * | 2016-08-22 | 2017-02-01 | 浪潮(北京)电子信息产业有限公司 | 一种调度镜像的高性能集群系统实现方法及装置 |
CN106325975A (zh) * | 2016-09-09 | 2017-01-11 | 浪潮软件股份有限公司 | 一种利用Docker容器自动化部署与管理大数据集群的方法 |
CN106790483A (zh) * | 2016-12-13 | 2017-05-31 | 武汉邮电科学研究院 | 基于容器技术的Hadoop集群系统及快速构建方法 |
CN106850621A (zh) * | 2017-02-07 | 2017-06-13 | 南京云创大数据科技股份有限公司 | 一种基于容器云技术快速搭建Hadoop集群的方法 |
CN107733977A (zh) * | 2017-08-31 | 2018-02-23 | 北京百度网讯科技有限公司 | 一种基于Docker的集群管理方法及装置 |
CN109842642A (zh) * | 2017-11-24 | 2019-06-04 | 中兴通讯股份有限公司 | 一种容器化集群系统的部署方法及装置、容器化集群系统 |
Non-Patent Citations (1)
Title |
---|
Azkaban三种模式部署;wangpei1949;《https://blog.csdn.net/wangpei1949/article/details/79521722》;20180311;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110602253A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11442762B2 (en) | Systems and methods for introspective application reporting to facilitate virtual machine movement between cloud hosts | |
CN109891391B (zh) | 用于按需资源供应的方法和系统 | |
CN108205442B (zh) | 边缘计算平台 | |
CN108345482B (zh) | 动态页面自定义编辑方法、装置、电子设备及存储介质 | |
Scolati et al. | A Containerized Big Data Streaming Architecture for Edge Cloud Computing on Clustered Single-board Devices. | |
US9245111B2 (en) | Owner command execution in a multi-tenant cloud hosting environment | |
US10003672B2 (en) | Apparatus, systems and methods for deployment of interactive desktop applications on distributed infrastructures | |
US20180302335A1 (en) | Orchestrating computing resources between different computing environments | |
WO2021073414A1 (zh) | 一种任务调度的方法及相关装置 | |
CN110768833A (zh) | 基于kubernetes的应用编排部署方法及装置 | |
CN112214330A (zh) | 集群中主节点的部署方法、装置及计算机可读存储介质 | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
CN108089913B (zh) | 一种超融合系统的虚拟机部署方法 | |
CN113220431B (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
US9921882B2 (en) | Information processing system, deployment method, processing device, and deployment device | |
US10623489B2 (en) | Sync gateway for mobile application download | |
US10146519B2 (en) | Generation and deployment of scripts for large scale processing framework services | |
US10911558B1 (en) | On-demand network segmentation | |
WO2014035309A1 (en) | Re-configuration in cloud computing environments | |
US10305817B1 (en) | Provisioning system and method for a distributed computing environment using a map reduce process | |
WO2019027597A1 (en) | WORKFLOW MANAGEMENT FRAMEWORK | |
CN111435315A (zh) | 分配资源的方法、装置、设备和计算机可读介质 | |
CN111737139A (zh) | 一种小程序的预览二维码生成方法及装置 | |
CN110602253B (zh) | 一种任务调度方法、装置及系统 | |
CN117112122A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |