CN117435324A - 基于容器化的任务调度方法 - Google Patents
基于容器化的任务调度方法 Download PDFInfo
- Publication number
- CN117435324A CN117435324A CN202311599333.6A CN202311599333A CN117435324A CN 117435324 A CN117435324 A CN 117435324A CN 202311599333 A CN202311599333 A CN 202311599333A CN 117435324 A CN117435324 A CN 117435324A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduled
- resources
- tasks
- node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000005516 engineering process Methods 0.000 claims abstract description 12
- 238000007405 data analysis Methods 0.000 claims abstract description 7
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000013468 resource allocation Methods 0.000 abstract description 2
- 239000000306 component Substances 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (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
本发明公开了基于容器化的任务调度方法,包括:S1、获取Kubernetes集群和大数据组件镜像;S2、获取目标工作流中的待调度任务,根据待调度任务的数据量,获取每个待调度任务的目标资源数量和待调度任务的总目标资源数量;S3、根据目标资源数量、总目标资源数量和Kubernetes集群的节点资源,对待调度任务进行调度,获取任务调度结果;S4、根据任务调度结果,并基于大数据组件执行目标工作流中的任务,其中大数据组件从大数据组件镜像获得。本发明通过将集群中节点的可用资源量和工作流中每个任务所需的资源量进行计算,再结合大数据分析技术,可做到资源合理分配。
Description
技术领域
本发明属于大数据技术领域,尤其涉及基于容器化的任务调度方法。
背景技术
在云计算和大数据技术的发展背景下,基于容器技术逐渐成为了大数据平台开发和管理的重要组成部分。容器技术可以将应用及其依赖项打包成一个独立的运行环境,使得应用在不同环境中都能稳定运行。通过容器化技术,可以实现对大数据组件的高效调度和管理,提高资源利用率,提高大数据平台的稳定性和可靠性。此外,容器化技术还可以实现资源的弹性伸缩,使得大数据平台可以根据实际需求动态调整资源分配,提高资源的利用效率。
现有技术都是给组件配置一定的资源量,同一组件中的任务共享所有的资源,按照到达时间排序,先到先执行。并且需要手动配置和管理各个节点,存在部署、维护和扩展困难的问题。通过人为判断分配好资源,对于数据量小的任务会造成资源浪费,数据量大的任务可能会因为资源不足,执行失败。
发明内容
为解决上述技术问题,本发明提出了基于容器化的任务调度方法,任务执行过程中,可实时监测组件资源使用情况,根据数量的大小自动扩容和缩容。
为实现上述目的,本发明提供了基于容器化的任务调度方法,包括:
S1、获取Kubernetes集群和大数据组件镜像;
S2、获取目标工作流中的待调度任务,根据所述待调度任务的数据量,获取所述待调度任务的目标资源数量;
S3、根据所述目标资源数量和所述Kubernetes集群的节点资源,对所述待调度任务进行调度,获取任务调度结果;
S4、根据所述任务调度结果,并基于大数据组件执行所述目标工作流中的任务,其中所述大数据组件从所述大数据组件镜像获得。
可选的,所述S2中获取所述待调度任务的目标资源数量包括:基于大数据分析技术,对历史任务设置的资源数据进行分析,并根据所述待调度任务的数据量获取所述目标资源数量。
可选的,所述S3根据所述目标资源数量和所述Kubernetes集群的节点资源,对所述待调度任务进行调度,获取任务调度结果包括:
根据所述目标资源数量之和,获取总目标资源数量;
根据所述总目标资源数量,判断所述Kubernetes集群中的节点资源是否足够执行所述待调度任务;
若不足够,则在所述Kubernetes集群中创建新节点,若足够,则根据所述目标资源数量将所述待调度任务绑定所述节点,对所述待调度任务进行调度。
可选的,将所述待调度任务绑定所述节点,对所述待调度任务进行调度包括:
根据所述待调度的任务获取待调度任务集合;
获取所述待调度任务集合中所述待调度任务的目标资源数量和所述Kubernetes集群中每个所述节点的资源,将所述待调度任务调度到目标节点。
可选的,将所述待调度任务调度到所述目标节点包括:
S301、根据所述待调度任务的目标资源数量大小,对所述待调度任务进行排序,获取有序任务集合;
S302、判断所述待调度任务中是否包含紧急任务,若所述待调度任务中包含所述紧急任务,则将包含所述紧急任务的待调度任务调整到所述有序任务集合的第一个元素;
S303、获取所述有序任务集合中所有任务需要的总资源;
S304、若所述Kubernetes集群中所有节点的可用资源小于所述总资源,则获取可用资源最大节点,反之选择可用资源最小节点,获取所述有序任务集合中前若干个任务调度至所述可用资源最大节点或所述可用资源最小节点;
S305、将所述前若干个任务从所述有序任务集合中移除、所述可用资源最大节点或所述可用资源最小节点从所述Kubernetes集群中移除,获取新的有序任务集合并返回步骤S303。
可选的,判断所述待调度任务中是否包含紧急任务包括:所述待调度任务含有优先级标识,根据所述优先级标识,确定所述待调度任务是否为紧急任务。
可选的,所述步骤S302还包括:若所述待调度任务中包含若干紧急任务,根据包含紧急任务的待调度任务的目标资源数量大小进行排序。
可选的,在S4中根据所述任务调度结果,并基于所述大数据组件执行所述目标工作流中的任务包括:
S401、在所述目标工作流中选择当前执行任务;
S402、判断所述当前执行任务是否有上一级任务,若没有,则进入S403,若有所述上一级任务,则判断所述上一级任务是否运行结束,若所述上一级任务运行结束,则进入S403,若所述上一级任务运行未结束,则等待下一次唤醒;
S403、判断所述大数据组件可运行任务数量是否达到上限,达到上限等待下一次唤醒,否则进入步骤S404;
S404、判断所述大数据组件是否启动,若未启动,则启动所述大数据组件;若启动,则根据所述任务调度结果运行所述当前执行任务;
S405、判断所述当前执行任务是否运行结束,若运行未结束则继续运行,若运行结束则反馈执行结果和释放占用资源,并选择下一个执行任务,并返回S402。
本发明技术效果:本发明通过将大数据处理的各个组件和服务打包成镜像,并使用Kubernetes进行统一管理和调度,实现了高可用性、弹性伸缩和灵活部署。本发明针对现有技术中给组件配置一定的资源量问题,通过将集群中节点的可用资源量和工作流中每个任务所需的资源量进行计算,再结合大数据分析技术,可做到资源合理分配,充分发挥节点的算力;同时针对现有技术中任务共享资源调整为每个任务都有自己的资源,减少了资源浪费。任务执行过程中,可实时监测组件资源使用情况,根据数量的大小自动扩容和缩容,即增加Kubernetes集群中的节点数量,以提高集群的计算和存储能力,移除Kubernetes集群中的节点,以减少集群的计算和存储能力,避免资源浪费和不足。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明实施例基于容器化的任务调度方法的流程示意图
图2为本发明实施例分配任务运行节点的流程示意图;
图3为本发明实施例银行贷款减值计算应用案例;
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,本实施例中提供一种基于容器化的任务调度方法,包括:
步骤1、环境准备
1.1、准备Kubernetes集群;
1.1.1、每台机器的硬件配置要求16GB或更多RAM,32个CPU或更多CPU,硬盘500GB或更多;
1.1.2、操作系统CentOS7.x-86_x64;
1.1.3、集群中所有机器之间网络互通;
1.1.4、可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点。
1.2、将大数据各个组件打包成镜像;
1.2.1、准备组件代码包;
1.2.2、搭建本地镜像仓库;
1.2.3、将代码包打成镜像并上传到镜像仓库。
步骤2、根据配置的工作流,分配任务运行节点,图2所示。
2.1、计算任务数据量,结合大数据分析技术可以计算出需要的资源大小;主要是对历史任务设置的资源数据进行分析,如2000W的数据转换,常用配置是2G4核,以此类推,即可计算出任务需要的资源进而获取任务流需要的总资源;
通过此步骤达到的效果有:
(1)结合大数据分析技术,可做到自动分配资源,无需手动配置,避免资源不足和浪费;
(2)从所有任务共享资源变为每个任务拥有自己的资源。
2.2、根据任务流需要的总资源判断集群节点剩余资源是否足够支撑所有任务运行。如果不足,创建一个新节点运行任务,本实施例中根据所有任务所需要的资源来创建节点,其目的是要能支撑任务能够正常运行,反之,选择合适的节点,并分配节点所拥有的资源;详细步骤如下:
2.2.1、获得所有待调度的任务,从而得到待调度任务集合;
2.2.2、根据待调度任务集合中各任务所需消耗的计算资源以及集群中各计算节点的可用计算资源,确定用于运行待调度任务集合中各任务组件的计算节点,使得容器化核心组件能够与尽可能多的容器化计算组件被调度至同一计算节点,由此得到合适的调度方案。
进一步地,得到合适的调度方案包括:
b.1、按照所需资源的大小,对待调度的任务进行排序,得到有序任务集合,根据所需资源从大到小排序;
b.2、如果待调度任务集合中包含紧急任务,则将其调整到有序集合的第一个元素,其中任务会有优先级标识,根据标识判断是否包含紧急任务即可,如T0代表第一优先级;针对多个紧急任务,根据其需要的资源大小,从大到小再次排序即可;
b.3、获得有序任务集合中任务所需要的总计算资源r,具体的r为所有集合所需数据的求和数据;
b.4、如果集群中所有计算节点的可用资源都小于总计算资源r,获得可用资源最大的节点n,反之选择可用资源最小的节点b,确定有序任务集合中可调度至计算节点n或b的前m个任务;
b.5、将前m个任务从有序集合中移除,节点n或b从计算节点中移除,将剩下的有序集合转入步骤b.3,完成对所有待调度任务的调度。
通过此步骤的效果有:(1)、基于容器化,任务运行过程中,根据资源使用情况,可自动扩容,增加节点,无需提前配置节点;
(2)、将集群中节点的可用资源量和工作流中每个任务所需的资源量进行计算,再结合大数据分析技术,可做到资源合理分配,将任务分配到合适的节点上,充分发挥节点的算力。
步骤3、根据上一步骤中合适的调度方案选择任务运行,进入步骤4,图3是配置的demo,图3配置可以理解成一个工作流,每个节点算是一级任务;
3.1、默认选择开始的第一个任务执行;
3.2、第一个任务执行完后,选择其指向的下一个任务执行。
步骤4、选择到任务后判断其是否有上一级任务,如果有,需要判断是否运行结束,上一级任务未运行结束,不能执行后续任务等待下一次唤醒,例如办公流程审批,上一环节未审批结束是不能到下一环节的,运行结束或没有上一级任务,进入步骤5;
4.1、如图3,上一级任务代表指向其的任务;
4.2、每个任务运行完会通知调度服务,同时会更新其运行状态为已完成,根据状态可以知道任务是否运行结束。
步骤5、判断各组件可运行任务数量是否达到上限,达到上限等待下一次唤醒,否则进入步骤6;
步骤6、在绑定的节点上运行任务,先判断大数据组件是否启动,如果未启动,启动大数据组件,然后执行任务,反之,可以直接执行任务,其中大数据组件从步骤1.2获得;
步骤7、判断任务是否运行结束,运行结束需要反馈执行结果和释放占用资源;
通过此步骤任务运行结束自动释放资源,无需人工介入。
步骤8、继续选择下一个可执行的任务,返回S4,根据步骤b中为每个任务配置的节点运行任务,直至工作流中所有任务都运行结束。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.基于容器化的任务调度方法,其特征在于,包括:
S1、获取Kubernetes集群和大数据组件镜像;
S2、获取目标工作流中的待调度任务,根据所述待调度任务的数据量,获取所述待调度任务的目标资源数量;
S3、根据所述目标资源数量和所述Kubernetes集群的节点资源,对所述待调度任务进行调度,获取任务调度结果;
S4、根据所述任务调度结果,并基于大数据组件执行所述目标工作流中的任务,其中所述大数据组件从所述大数据组件镜像获得。
2.如权利要求1所述的基于容器化的任务调度方法,其特征在于,所述S2中获取所述待调度任务的目标资源数量包括:基于大数据分析技术,对历史任务设置的资源数据进行分析,并根据所述待调度任务的数据量获取所述目标资源数量。
3.如权利要求2所述的基于容器化的任务调度方法,其特征在于,所述S3根据所述目标资源数量和所述Kubernetes集群的节点资源,对所述待调度任务进行调度,获取任务调度结果包括:
根据所述目标资源数量之和,获取总目标资源数量;
根据所述总目标资源数量,判断所述Kubernetes集群中的节点资源是否足够执行所述待调度任务;
若不足够,则在所述Kubernetes集群中创建新节点,若足够,则根据所述目标资源数量将所述待调度任务绑定所述节点,对所述待调度任务进行调度。
4.如权利要求3所述的基于容器化的任务调度方法,其特征在于,将所述待调度任务绑定所述节点,对所述待调度任务进行调度包括:
根据所述待调度的任务获取待调度任务集合;获取所述待调度任务集合中所述待调度任务的目标资源数量和所述Kubernetes集群中每个所述节点的资源,将所述待调度任务调度到目标节点。
5.如权利要求4所述的基于容器化的任务调度方法,其特征在于,将所述待调度任务调度到所述目标节点包括:
S301、根据所述待调度任务的目标资源数量大小,对所述待调度任务进行排序,获取有序任务集合;
S302、判断所述待调度任务中是否包含紧急任务,若所述待调度任务中包含所述紧急任务,则将包含所述紧急任务的待调度任务调整到所述有序任务集合的第一个元素;
S303、获取所述有序任务集合中所有任务需要的总资源;
S304、若所述Kubernetes集群中所有节点的可用资源小于所述总资源,则获取可用资源最大节点,反之选择可用资源最小节点,获取所述有序任务集合中前若干个任务调度至所述可用资源最大节点或所述可用资源最小节点;
S305、将所述前若干个任务从所述有序任务集合中移除、所述可用资源最大节点或所述可用资源最小节点从所述Kubernetes集群中移除,获取新的有序任务集合并返回步骤S303。
6.如权利要求5所述的基于容器化的任务调度方法,其特征在于,判断所述待调度任务中是否包含紧急任务包括:所述待调度任务含有优先级标识,根据所述优先级标识,确定所述待调度任务是否为紧急任务。
7.如权利要求5所述的基于容器化的任务调度方法,其特征在于,步骤S302还包括:若所述待调度任务中包含若干紧急任务,根据包含紧急任务的待调度任务的目标资源数量大小进行排序。
8.如权利要求1所述的基于容器化的任务调度方法,其特征在于,在S4中根据所述任务调度结果,并基于所述大数据组件执行所述目标工作流中的任务包括:
S401、在所述目标工作流中选择当前执行任务;
S402、判断所述当前执行任务是否有上一级任务,若没有,则进入S403,若有所述上一级任务,则判断所述上一级任务是否运行结束,若所述上一级任务运行结束,则进入S403,若所述上一级任务运行未结束,则等待下一次唤醒;
S403、判断所述大数据组件可运行任务数量是否达到上限,达到上限等待下一次唤醒,否则进入步骤S404;
S404、判断所述大数据组件是否启动,若未启动,则启动所述大数据组件;若启动,则根据所述任务调度结果运行所述当前执行任务;
S405、判断所述当前执行任务是否运行结束,若运行未结束则继续运行,若运行结束则反馈执行结果和释放占用资源,并选择下一个执行任务,并返回S402。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311599333.6A CN117435324B (zh) | 2023-11-28 | 2023-11-28 | 基于容器化的任务调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311599333.6A CN117435324B (zh) | 2023-11-28 | 2023-11-28 | 基于容器化的任务调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117435324A true CN117435324A (zh) | 2024-01-23 |
CN117435324B CN117435324B (zh) | 2024-05-28 |
Family
ID=89549868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311599333.6A Active CN117435324B (zh) | 2023-11-28 | 2023-11-28 | 基于容器化的任务调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435324B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785486A (zh) * | 2024-02-27 | 2024-03-29 | 融科联创(天津)信息技术有限公司 | 环境资源调配方法、装置、设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114950A (zh) * | 2020-09-21 | 2020-12-22 | 中国建设银行股份有限公司 | 任务调度方法和装置、以及集群管理系统 |
CN114327881A (zh) * | 2021-12-23 | 2022-04-12 | 北京达佳互联信息技术有限公司 | 任务调度方法及装置 |
WO2023198061A1 (zh) * | 2022-04-15 | 2023-10-19 | 中兴通讯股份有限公司 | 一种容器调度方法、电子设备和存储介质 |
-
2023
- 2023-11-28 CN CN202311599333.6A patent/CN117435324B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114950A (zh) * | 2020-09-21 | 2020-12-22 | 中国建设银行股份有限公司 | 任务调度方法和装置、以及集群管理系统 |
CN114327881A (zh) * | 2021-12-23 | 2022-04-12 | 北京达佳互联信息技术有限公司 | 任务调度方法及装置 |
WO2023198061A1 (zh) * | 2022-04-15 | 2023-10-19 | 中兴通讯股份有限公司 | 一种容器调度方法、电子设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117785486A (zh) * | 2024-02-27 | 2024-03-29 | 融科联创(天津)信息技术有限公司 | 环境资源调配方法、装置、设备和介质 |
CN117785486B (zh) * | 2024-02-27 | 2024-05-24 | 融科联创(天津)信息技术有限公司 | 环境资源调配方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117435324B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN108632365B (zh) | 服务资源调整方法、相关装置和设备 | |
US20200137151A1 (en) | Load balancing engine, client, distributed computing system, and load balancing method | |
CN109445944B (zh) | 一种基于dpdk的网络数据采集处理系统及其方法 | |
US20140165061A1 (en) | Statistical packing of resource requirements in data centers | |
CN111682973B (zh) | 一种边缘云的编排方法及系统 | |
CN117435324B (zh) | 基于容器化的任务调度方法 | |
CN112114950A (zh) | 任务调度方法和装置、以及集群管理系统 | |
US10866832B2 (en) | Workflow scheduling system, workflow scheduling method, and electronic apparatus | |
CN111897654A (zh) | 将应用迁移到云平台的方法、装置、电子设备和存储介质 | |
CN110838939B (zh) | 一种基于轻量级容器的调度方法及边缘物联管理平台 | |
WO2021103646A1 (zh) | 一种部署pod的方法及装置 | |
CN115134371A (zh) | 包含边缘网络算力资源的调度方法、系统、设备及介质 | |
EP4177751A1 (en) | Resource scheduling method, resource scheduling system, and device | |
CN116541134A (zh) | 多架构集群中容器的部署方法及装置 | |
CN116340005B (zh) | 容器集群的调度方法、装置、设备及存储介质 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN113382077A (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
CN105933136B (zh) | 一种资源调度方法及系统 | |
CN111177160A (zh) | 服务更新方法、装置、服务器及介质 | |
CN111240824A (zh) | 一种cpu资源调度方法及电子设备 | |
CN117251269A (zh) | Jenkins资源管理方法、装置、设备及存储介质 | |
Wu et al. | ABP scheduler: Speeding up service spread in docker swarm | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN115509716A (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 |