CN116302452B - 作业调度方法、***、装置、通信设备及存储介质 - Google Patents
作业调度方法、***、装置、通信设备及存储介质 Download PDFInfo
- Publication number
- CN116302452B CN116302452B CN202310563072.6A CN202310563072A CN116302452B CN 116302452 B CN116302452 B CN 116302452B CN 202310563072 A CN202310563072 A CN 202310563072A CN 116302452 B CN116302452 B CN 116302452B
- Authority
- CN
- China
- Prior art keywords
- node
- execution
- execution step
- task manager
- independent task
- 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
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000004891 communication Methods 0.000 title claims abstract description 26
- 230000015556 catabolic process Effects 0.000 claims description 16
- 238000006731 degradation reaction Methods 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 abstract description 25
- 230000008569 process Effects 0.000 description 23
- 238000012545 processing Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000013468 resource allocation Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008602 contraction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请实施例提供了一种作业调度方法、***、装置、通信设备及存储介质,包括:接收用户发送的预设作业程序,预设作业程序包括预先设置的独立任务管理器标记;根据预设作业程序生成执行计划,执行计划包括执行步骤;根据执行步骤的类型确定执行步骤的运行位置,执行步骤的类型是根据独立任务管理器标记生成的;获取执行步骤对应的资源消耗;根据资源消耗和执行步骤的运行位置确定执行步骤对应的目标节点,启动执行步骤。本申请通过结合Yarn集群和独立任务管理器节点,根据执行步骤的类型确定执行步骤的运行位置,保留Yarn集群调度的灵活资源共享特点,实现了资源敏感型计算步骤可以使用到独立任务管理器节点充足的资源。
Description
技术领域
本申请涉及数据处理技术领域,特别是一种作业调度方法、***、装置、通信设备及存储介质。
背景技术
Flink是一种分布式流数据计算引擎,Yarn是一个大数据Hadoop(分布式计算)体系的调度框架,负责统一管理整个集群的资源,传统的Flink支持全独立模式或者Yarn模式运行。全独立模式在固定的节点启动常驻的JobManager(工作管理器)和TaskManager(任务管理器)服务,服务和所在的节点是一成不变的,灵活性不足。
因此,为了更好的进行Flink作业,相关技术中一般使用Yarn模式进行作业,然而,这种模式下的TaskManager运行位置不确定,并且生命周期和Flink作业紧密相关,灵活性足够但是作业调度的位置无法预知,因此无法解决作业执行步骤依赖特定资源的情况,及时Yarn集群为Flink作业分配专门的队列,节点上的一些资源例如磁盘IO、网络带宽等还是会出现激烈竞争的情况,严重影响Flink作业的延迟和稳定性。
发明内容
本申请实施例的目的在于提供一种作业调度方法、***、装置、通信设备及存储介质,以解决现有技术中无法快速得到用户所需求功能的服务器实际接口的技术问题。具体技术方案如下:
在本申请实施的第一方面,首先提供了一种作业调度方法,应用于Yarn,所述方法包括:
接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
获取各个所述执行步骤对应的资源消耗;
根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
可选地,所述执行步骤的类型包括:未绑定标记执行步骤以及绑定标记执行步骤,所述绑定标记执行步骤执行在所述独立任务管理器对应的节点上。
可选地,所述根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置包括:
在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为所述独立任务管理器;
在检测到所述执行步骤的类型为未绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为Yarn集群。
可选地,所述资源消耗包括未绑定标记执行步骤对应的资源消耗,以及,绑定标记执行步骤对应的资源消耗。
可选地,所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点包括:
在检测到所述资源消耗满足预设运行条件的情况下,根据所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点。
可选地,所述根据所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点包括:
在检测到所述执行步骤对应的运行位置设置为所述独立任务管理器的情况下,所述执行步骤对应的目标节点为独立任务管理器节点;
在检测到所述执行步骤对应的运行位置设置为Yarn集群的情况下,所述执行步骤对应的目标节点为所述Yarn集群中任一节点。
可选地,所述Yarn包括节点状态***和执行步骤分配器,所述节点状态***用于对独立任务管理器对应的节点信息进行维护,所述执行步骤分配器用于根据所述独立任务管理器对应的节点信息对所述独立任务管理器进行调度。
可选地,在所述根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置的步骤之后,所述方法包括:
所述节点状态***接收独立任务管理器发送的心跳;
所述节点状态***根据所述心跳确定所述独立任务管理器是否处于故障状态,并向所述执行步骤分配器发送节点变化信息。
可选地,在所述所述节点状态***根据所述心跳确定所述独立任务管理器是否处于故障状态,并向所述执行步骤分配器发送节点变化信息的步骤之后,所述方法包括:
所述节点状态***在检测到所述独立任务管理器节点变化的情况下,所述执行步骤分配器向当前作业对应的工作管理器发送节点变化通知,以使所述工作管理变更当前作业对应的独立任务管理器节点。
可选地,所述根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置包括:
在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,所述执行步骤分配器从所述节点状态***中获取当前作业对应的独立任务管理器节点信息,根据所述绑定标记执行步骤对应的标签在所述独立任务管理器节点信息中匹配,生成所述绑定标记执行步骤的运行位置。
可选地,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
在检测到所述目标节点处于故障状态的情况下,若所述目标节点为独立任务管理器节点,则将所述目标节点对应的所述执行步骤调度至所述相同绑定标记的第二目标节点,或者,基于预设节点调度策略,将所述目标节点对应的所述执行步骤调度至所述Yarn集群中任一节点;
若所述目标节点为Yarn节点,则将所述目标节点从所述Yarn集群中剔除,并将所述目标节点上对应的所述执行步骤调度至所述Yarn集群中的其他节点。
可选地,在所述基于预设节点调度策略,将所述目标节点对应的所述执行步骤调度至所述Yarn集群中任一节点的步骤之后,所述方法包括:
停止执行所述目标节点对应的所述执行步骤,将所述目标节点对应的故障信息发送至用户,以使所述用户对所述目标节点进行维护。
可选地,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
接收用户发送的独立任务管理器节点扩容指令;
根据所述独立任务管理器节点扩容指令创建目标独立任务管理器节点;
获取全部所述独立任务管理器节点对应的执行步骤数量平均值;
根据所述执行步骤数量平均值对所述目标独立任务管理器节点进行调度,直至所述目标独立任务管理器节点对应的执行步骤数量达到所述执行步骤数量平均值。
可选地,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
接收用户发送的执行步骤调度的升级指令,其中,所述升级指令包括目标执行步骤;
根据所述升级指令和预设节点调度策略,将所述目标执行步骤所在的所述Yarn集群中任一节点调度至独立任务管理器节点。
可选地,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
接收用户发送的执行步骤调度的降级指令,其中,所述降级指令包括目标执行步骤;
根据所述降级指令和预设节点调度策略,将所述目标执行步骤所在的独立任务管理器节点调度至所述Yarn集群中任一节点。
在本申请实施的又一方面,还提供了一种作业调度***,所述作业调度***包括独立任务管理器节点,Yarn集群节点,以及Yarn;
所述独立任务管理器节点和所述Yarn集群节点之间通信连接;
所述独立任务管理器节点包括预先设置的独立任务管理器标记,所述独立任务管理器节点用于执行绑定标记执行步骤;
所述Yarn集群节点用于执行未绑定标记执行步骤;
所述Yarn用于接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;获取各个所述执行步骤对应的资源消耗;根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
可选地,所述Yarn包括节点状态***和执行步骤分配器;
所述节点状态***用于对独立任务管理器对应的节点信息进行维护;
所述执行步骤分配器用于根据所述独立任务管理器对应的节点信息对所述独立任务管理器进行调度。
在本申请实施的又一方面,还提供了一种作业调度装置,应用于服务器管理平台,所述装置包括:
接收模块,用于接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
生成模块,用于根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
第一确定模块,用于根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
获取模块,用于获取各个所述执行步骤对应的资源消耗;
第二确定模块,用于根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
在本申请实施的又一方面,还提供了一种通信设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的作业调度方法。
在本申请实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的作业调度方法。
在本申请实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的作业调度方法。
本申请实施例提供的作业调度方法,通过接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;获取各个所述执行步骤对应的资源消耗;根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立任务管理器节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1示出了本申请实施例提供的作业调度方法的步骤流程图一;
图2示出了本申请实施例提供的作业调度方法的步骤流程图二;
图3示出了本申请实施例提供的作业调度方法的步骤流程图三;
图4示出了本申请实施例提供的作业调度方法的步骤流程图四;
图5示出了本申请实施例提供的作业调度方法的步骤流程图五;
图6示出了本申请实施例提供的作业调度方法的步骤流程图六;
图7示出了本申请实施例提供的一种作业调度***的示意图;
图8示出了本申请实施例提供的一种作业调度装置的装置框图;
图9示出了本申请实施例提供的一种通信设备的结构框图;
图10示出了本申请实施例提供的一种作业调度示意图;
图11示出了本申请实施例提供的一种作业调度故障处理流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
参照图1,示出了本申请实施例提供的作业调度方法的步骤流程图一,所述方法可以包括:
步骤101,接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
需要说明的是,在本申请实施例中,整个作业调度仅需要在编程的时候对需要专门调度的地方绑定调度节点的标记,在实现功能的基础上,对Flink编程API的改动很小。
因此,在编写作业程序的时候,在需要调度到独立TaskManager节点的执行步骤,指定这个作业阶段对应的TaskManager标记,即用户向Yarn发送预先编写的作业程序,预设作业程序中包括了用户预先设置的独立TaskManager标记,因此,在步骤101中完成了在作业规划阶段的调度位置绑定。
需要说明的是,在本申请实施例中,独立任务管理器标记是预先设置好的,在用户设置的作业程序中,可以对作业程序中可能包括的执行步骤设置独立任务管理器标记,从而根据标记作为划分执行步骤类型的依据。
步骤102,根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
需要说明的是,在本申请实施例中,在作业提交生成执行计划的阶段,根据预设作业程序会生成执行计划,可以将预设作业程序中的各个执行步骤分为两类,一类是未绑定TaskManager标记的执行步骤,对于未绑定TaskManager标记的执行步骤可以直接参与Yarn集群的调度,按照传统Yarn集群内部配置的调度器,服从相应的调度规则。另一类是绑定了TaskManager标记的执行步骤,对于绑定TaskManager标记执行步骤不参与Yarn集群的调度,而是固定调度到匹配标记的独立TaskManager所在节点上。
需要说明的是,本申请中预先设置了独立任务管理器标记,即对每个执行步骤根据是否绑定有独立任务管理器标记来确定每个执行步骤的运行位置,其中,未绑定标记执行步骤代表该执行步骤上没有绑定有独立任务管理器标记,绑定标记执行步骤代表该执行步骤上绑定有独立任务管理器标记。
进一步地,本申请实为了实现改进的调度方式,在Yarn集群中引入了节点状态***和执行步骤分配器两个模块,具体的,参照后续说明。
步骤103,根据各个执行步骤的类型确定各个执行步骤的运行位置,其中,执行步骤的类型是根据独立任务管理器标记生成的;
需要说明的是,在步骤102生成的执行计划中包括多个执行步骤,每个执行步骤都可以分配在不同的节点上进行处理,在本申请中,将执行步骤分为了两种类型,具体的,执行步骤的类型包括:未绑定标记执行步骤以及绑定标记执行步骤。
根据执行步骤的类型可以确定执行步骤的运行位置,具体的,绑定标记执行步骤执行在独立任务管理器对应的节点上,未绑定标记执行步骤可以执行在Yarn集群中。
进一步地,所述根据各个执行步骤的类型确定各个执行步骤的运行位置包括:在检测到执行步骤的类型为绑定标记执行步骤的情况下,将执行步骤对应的运行位置设置为独立任务管理器;在检测到执行步骤的类型为未绑定标记执行步骤的情况下,将执行步骤对应的运行位置设置为Yarn集群。
步骤104,获取各个所述执行步骤对应的资源消耗。
进一步地,所述资源消耗包括未绑定标记执行步骤对应的资源消耗,以及,绑定标记执行步骤对应的资源消耗。
需要说明的是,需要对各个执行步骤计算资源消耗,具体的,分为两类作业步骤来计算资源消耗:调度到Yarn集群节点上的执行步骤,接受Yarn调度器配置的资源限制,每个步骤资源(CPU核心数,内存容量)上限不得超过所在Yarn队列的限制,在Yarn上运行的所有执行步骤消耗的资源和集群中其他作业一起,参与Yarn调度器的集中管理和统一分配,因此,这部分属于计算共享资源消耗。另一类执行步骤调度到独立TaskManager节点上,它的资源限制服从TaskManager的资源配置,TaskManager的资源属于Flink作业独占使用,不和其他的作业共享资源,因此,这部分属于计算独占资源消耗。
步骤105,根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
需要说明的是,在本申请实施例中,在步骤104中计算资源消耗可满足运行条件的情况下,根据预设作业程序中分配的绑定标记执行步骤和未绑定标记执行步骤确定最终部署调度的目标节点,并启动所有执行步骤。
需要说明的是,上述步骤101-105实现了整个Flink作业调度执行的流程。
另外,参照图10,图10示出了本申请实施例提供的一种作业调度示意图,对于一个亲和性调度流程的具体例子,有两个作业流程,其中作业A的作业流程为:作业A中步骤1绑定标签A,步骤2、3未绑定标签;作业B的作业流程为:作业B中步骤1绑定标签A,步骤2绑定标签B,步骤3、4未绑定标签;上述两个作业流程对应的调度结果如图10所示,独立任务管理器节点1上预先设置的标签A,独立任务管理器节点2上预先设置的标签B,因此,作业A中的步骤1以及作业B中的步骤1和独立任务管理器节点1匹配,作业B中的步骤2和独立任务管理器节点2匹配,剩余的步骤基于Yarn的资源分配,按需匹配Yarn集群中的节点。
本申请实施例提供的作业调度方法,通过接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;获取各个所述执行步骤对应的资源消耗;根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立任务管理器节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
参照图2,示出了本申请实施例提供的作业调度方法的步骤流程图二,所述方法可以包括:
步骤201,接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
步骤202,根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
步骤203,根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
步骤204,获取各个所述执行步骤对应的资源消耗;
需要说明的是,上述步骤201-204参照前序论述,在此不再赘述。
步骤205,在检测到所述资源消耗满足预设运行条件的情况下,根据所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点。
需要说明的是,在本申请实施例中,需要对各个执行步骤计算资源消耗,具体的,分为两类作业步骤来计算资源消耗:调度到Yarn集群节点上的执行步骤,接受Yarn调度器配置的资源限制,每个步骤资源(CPU核心数,内存容量)上限不得超过所在Yarn队列的限制,在Yarn上运行的所有执行步骤消耗的资源和集群中其他作业一起,参与Yarn调度器的集中管理和统一分配,因此,这部分属于计算共享资源消耗。另一类执行步骤调度到独立TaskManager节点上,它的资源限制服从TaskManager的资源配置,TaskManager的资源属于Flink作业独占使用,不和其他的作业共享资源,因此,这部分属于计算独占资源消耗。
进一步地,步骤205中,所述根据所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点包括:在检测到所述执行步骤对应的运行位置设置为所述独立任务管理器的情况下,所述执行步骤对应的目标节点为独立任务管理器节点;在检测到所述执行步骤对应的运行位置设置为Yarn集群的情况下,所述执行步骤对应的目标节点为所述Yarn集群中任一节点。
需要说明的是,在计算资源消耗可满足运行条件的情况下,根据预设作业程序中分配的绑定标记执行步骤和未绑定标记执行步骤确定最终部署调度的目标节点,并启动所有执行步骤。
具体的,目标节点可以是独立任务管理器节点,也可以是Yarn集群中任一节点。
本申请实施例提供的作业调度方法,通过接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;获取各个所述执行步骤对应的资源消耗;根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立任务管理器节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
参照图3,示出了本申请实施例提供的作业调度方法的步骤流程图三,所述方法可以包括:
步骤301,接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
步骤302,根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
步骤303,根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
步骤304,获取各个所述执行步骤对应的资源消耗;
步骤305,根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
所述Yarn包括节点状态***和执行步骤分配器,所述节点状态***用于对独立任务管理器对应的节点信息进行维护,所述执行步骤分配器用于根据所述独立任务管理器对应的节点信息对所述独立任务管理器进行调度。
步骤306,所述节点状态***接收独立任务管理器发送的心跳;
步骤307,所述节点状态***根据所述心跳确定所述独立任务管理器是否处于故障状态,并向所述执行步骤分配器发送节点变化信息。
步骤308,所述节点状态***在检测到所述独立任务管理器节点变化的情况下,所述执行步骤分配器向当前作业对应的工作管理器发送节点变化通知,以使所述工作管理变更当前作业对应的独立任务管理器节点。
需要说明的是,上述步骤306-307中,本申请中的Yarn引入了节点状态***和执行步骤分配器两个模块。
对于节点状态***来讲,节点状态***用于维护所有的独立TaskManager节点的信息,将所有的独立TaskManager节点按照其对应的标记归类。
具体的,可以将标记和节点之间关系进行存储和归类,例如,(TM为TaskManager简称):{“标签1”:[“TM1”, “TM2”]}、{“标签2”:[“TM3”]}。
并且,节点状态***接收独立TaskManager发送过来的心跳,用来探测其是否存活,例如,超过预设的心跳时间间隔的时长乘以30没有接收到某个独立TaskManager发送过来的心跳,则可以认为这个TaskManager节点出现故障。
此外节点状态***还负责响应节点的变化,例如节点的新增和减少,当节点状态***检测到节点变化的时候可以立刻通知执行步骤分配器。
对于执行步骤分配器来讲,执行步骤分配器用于负责执行调度和响应节点变化。执行调度的时候从节点状态***中取出最新的独立TaskManager节点信息,根据执行步骤绑定的标签查询到匹配的独立TaskManager节点。在调度绑定独立TaskManager标记的执行步骤时,它上游执行步骤的数据输出目标和下游执行步骤数据的输入源设定为这个独立的TaskManager节点,此外其他未绑定的节点参与Flink原有的Yarn调度过程。除此之外,执行步骤分配器在调度完成之后将被调度的作业信息保存起来。
具体的,节点状态***和执行步骤分配器可以实现一下操作:如果节点状态***检测到TaskManager出现变动,执行步骤分配器会通知作业的JobManager,变更该TaskManager上运行的执行步骤所在的节点。这些变更包含如下情形:目标TaskManager节点不存在(找不到标记匹配的TaskManager节点),目标TaskManager节点有多个以及作业运行时独立TaskManager节点出现故障等问题。
本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立任务管理器节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
参照图4,示出了本申请实施例提供的作业调度方法的步骤流程图四,所述方法可以包括:
步骤401,接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
步骤402,根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
步骤403,在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,所述执行步骤分配器从所述节点状态***中获取当前作业对应的独立任务管理器节点信息,根据所述绑定标记执行步骤对应的标签在所述独立任务管理器节点信息中匹配,生成所述绑定标记执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
需要说明的是,在本申请实施例中,执行步骤分配器用于负责执行调度和响应节点变化。执行调度的时候从节点状态***中取出最新的独立TaskManager节点信息,根据执行步骤绑定的标签查询到匹配的独立TaskManager节点。在调度绑定独立TaskManager标记的执行步骤时,它上游执行步骤的数据输出目标和下游执行步骤数据的输入源设定为这个独立的TaskManager节点,此外其他未绑定的节点参与Flink原有的Yarn调度过程。除此之外,执行步骤分配器在调度完成之后将被调度的作业信息保存起来。
步骤404,获取各个所述执行步骤对应的资源消耗;
步骤405,根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
步骤406,在检测到所述目标节点处于故障状态的情况下,若所述目标节点为独立任务管理器节点,则将所述目标节点对应的所述执行步骤调度至所述相同绑定标记的第二目标节点,或者,基于预设节点调度策略,将所述目标节点对应的所述执行步骤调度至所述Yarn集群中任一节点;
步骤407,若所述目标节点为Yarn节点,则将所述目标节点从所述Yarn集群中剔除,并将所述目标节点上对应的所述执行步骤调度至所述Yarn集群中的其他节点。
进一步地,在步骤406之后,若所述目标节点为独立任务管理器节点,还可以停止执行所述目标节点对应的所述执行步骤,将所述目标节点对应的故障信息发送至用户,以使所述用户对所述目标节点进行维护。
需要说明的是,在本申请实施例中,步骤406-407,在执行步骤启动运行当中,会出现节点故障导致作业失败的问题,具体的,参照图11,图11示出了本申请实施例提供的一种作业调度故障处理流程图,从图中可以看出,当检测到存在目标节点处于故障状态时,分为两种情况。
一种是Yarn集群中的节点故障,对这类情况,需要将故障的节点从集群中剔除,然后把原本故障节点上运行的作业步骤按照调度规则转移到其他健康的节点上,最后从最近一次成功的检查点(checkpoint)恢复作业执行。
另外一种是独立TaskManager节点故障,具体的,分为两种情况:
情况一:匹配标记的独立TaskManager节点存在多个,且除去故障的节点外还有其他匹配标记的节点。这种情况下将调度到该独立TaskManager的执行步骤调度到其他具有相同标记的独立TaskManager节点上。执行步骤分配器修改所有作业运行在该独立TaskManager上的执行步骤上游执行步骤数据输出目标和下游执行步骤输出输入源为另一个匹配标记的节点。
情况二:匹配标记的独立TaskManager节点是唯一的,故障之后无法替补。这时候依赖上一节的调度缓和策略。对于节点调度降级策略,故障节点上的作业步骤会重新被调度在Yarn集群。对于拒绝执行策略,整个作业将失败,停止运行。
需要说明的是,在本申请实施例中,预设节点调度策略即为节点调度缓和策略,具体指根据用户的需求或者当前作业场景需求,可以对所需操作的执行步骤所在的目标节点进行更换,例如,对节点调度降级或者节点调度升级等。
另外,需要说明的是,当在根据预设节点调度策略对所需操作的执行步骤所在的目标节点进行更换时,此时,若是将原先的独立管理器节点更换为Yarn集群中的节点时,需要根据Yarn集群中预先设置的规则,例如按需进行资源分配等方式确定Yarn集群中任一节点作为新的目标节点,或者用户指定Yarn集群中任一节点作为新的目标节点。
本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立TaskManager节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
另外,通过针对混合部署和调度方法设置负载均衡故障恢复策略,独立TaskManager节点同时具备负载均衡和故障备份的功能,灵活的利用独立TaskManager节点的资源,同时又降低了独立TaskManager节点故障时候作业运行中断的风险独立TaskManager节点同时具备负载均衡和故障备份的功能,提高了集群的可用性和容错性。
参照图5,示出了本申请实施例提供的作业调度方法的步骤流程图五,所述方法可以包括:
步骤501,接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
步骤502,根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
步骤503,根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
步骤504,获取各个所述执行步骤对应的资源消耗;
步骤505,根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
步骤506,接收用户发送的独立任务管理器节点扩容指令;
步骤507,根据所述独立任务管理器节点扩容指令创建目标独立任务管理器节点;
步骤508,获取全部所述独立任务管理器节点对应的执行步骤数量平均值;
步骤509,根据所述执行步骤数量平均值对所述目标独立任务管理器节点进行调度,直至所述目标独立任务管理器节点对应的执行步骤数量达到所述执行步骤数量平均值。
需要说明的是,在步骤506-509中,针对独立TaskManager节点扩容情况,例如,在作业过程中,用户发现需要对内存资源、CPU资源进行扩容才能更好的完成作业,因此,可以对独立TaskManager节点扩容,即创建目标独立任务管理器节点(即新扩容的节点),对于新扩容的节点来讲是没有任务运行的,原先存在的节点可能已经有一些任务的执行步骤在之上运行,因此,此时需要计算出原有独立TaskManager节点上运行执行步骤数量的平均值,根据平均值调度目标独立任务管理器节点。
具体的,通过对新提交任务(新作业)中绑定该调度标记的执行步骤,优先调度到新扩容的节点上,直到新扩容的节点上运行的执行步骤数量达到先前计算出来的平均值之后,恢复独立任务管理器的轮询调度。
需要说明的是,按照执行步骤个数均分而不是按照消耗的资源占用均分的目的在于最小化节点故障对作业造成的影响,由于Flink是流计算引擎,流计算作业的特殊性在于一个计算步骤出现中断,整个流计算过程将无法正常工作,如果采用按照资源占用均分的方式,可能会存在大量占用资源较小的执行步骤被分配在同一节点,而其他节点只存在少量消耗资源较大的执行步骤的情况。此时如果前者崩溃,即便有故障应变处理,但是影响到的作业占比很多。
另外,处理对节点扩容,还可以对节点缩容,具体的,独立TaskManager节点缩容情况可以采用和前面独立TaskManager节点故障相同的处理策略,即降级处理或者停止执行,但是对于节点缩容来讲,当具有某个标记独立TaskManager节点只剩下一个的时候,再缩容会出现这些执行步骤重新调度到Yarn集群上,或者作业失败反馈的问题。
本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立TaskManager节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
参照图6,示出了本申请实施例提供的作业调度方法的步骤流程图五,所述方法可以包括:
步骤601,接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
步骤602,根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
步骤603,根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
步骤604,获取各个所述执行步骤对应的资源消耗;
步骤605,根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
步骤606,接收用户发送的执行步骤调度的升级指令,其中,所述升级指令包括目标执行步骤;
步骤607,根据所述升级指令和预设节点调度策略,将所述目标执行步骤所在的所述Yarn集群中任一节点调度至独立任务管理器节点。
需要说明的是,在本申请实施例中,根据用户发送的升级指令可以改变调度的位置,即改变执行步骤是位于Yarn集群还是位于独立TaskManager节点。从Yarn集群到独立TaskManager节点这个过程为升级,从独立TaskManager节点到Yarn集群这个调度过程为降级,升级和降级逻辑复用前面的故障恢复逻辑,将需要升级的执行步骤停止运行,然后按照新的调度规则,将执行步骤恢复运行在符合条件的节点上。
进一步地,在步骤605之后,还可以接收用户发送的执行步骤调度的降级指令,包括:接收用户发送的执行步骤调度的降级指令,其中,所述降级指令包括目标执行步骤;根据所述降级指令和预设节点调度策略,将所述目标执行步骤所在的独立任务管理器节点调度至所述Yarn集群中任一节点。
同样的,降级也是,将需要降级的执行步骤停止运行,然后按照新的调度规则,将执行步骤恢复运行在符合条件的节点上。
本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立TaskManager节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
另外,针对混合部署和调度方法设置负载均衡故障恢复策略,调度升级和降级。灵活的利用独立TaskManager节点的资源,同时又降低了独立TaskManager节点故障时候作业运行中断的风险。
参照图7,示出了本申请实施例提供的作业调度***的***示意图,所述作业调度***包括独立任务管理器节点,Yarn集群节点,以及Yarn;
所述独立任务管理器节点和所述Yarn集群节点之间通信连接;
所述独立任务管理器节点包括预先设置的独立任务管理器标记,所述独立任务管理器节点用于执行绑定标记执行步骤;
所述Yarn集群节点用于执行未绑定标记执行步骤;
所述Yarn用于接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;获取各个所述执行步骤对应的资源消耗;根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
进一步地,所述Yarn包括节点状态***和执行步骤分配器;所述节点状态***用于对独立任务管理器对应的节点信息进行维护;所述执行步骤分配器用于根据所述独立任务管理器对应的节点信息对所述独立任务管理器进行调度。
需要说明的是,在本申请实施例中,作业调度***包括一种同时使用独立TaskManager和Yarn中浮动TaskManager的混合部署架构,独立的TaskManager运行在特定资源密集型节点上,作为常驻服务运行。浮动TaskManager接受Yarn的调度,在作业运行时候按需启动。Flink作业中需要指定在特定节点运行的步骤,运行时会调度到独立TaskManager所在的节点。其他的步骤使用Yarn的浮动TaskManager运行。作业运行结束之后,Yarn中的浮动TaskManager自动停止运行,归还资源给集群。特定节点上的独立模式TaskManager始终保持运行。接受其他作业的调度运行。
本申请实施例中的作业调度***,将可调度的节点分为两种类型。绑定标记的节点和未绑定节点。其中,绑定标记的节点需要指明绑定的特定节点的标记,可供Flink作业执行步骤指定标签。指定标签的作业步骤会调度在匹配标签的绑定标记的节点上。未绑定步骤是资源不敏感的节点,接受Yarn的统一调度。Flink作业在编写的时候可以将特定算子(又称为操作符,或作业步骤)绑定到节点标记,在作业调度运行的时候区分这两种类型的作业步骤,分开进行调度。进而可以实现独立的资源配置。独立模式的TaskManager可使用的集群资源在TaskManager中专门配置,浮动模式的TaskManager仍然由Yarn来管理资源,可以实现不同类型节点资源的分类管理和控制,避免资源需求大的作业步骤出现性能瓶颈和其他步骤的资源浪费,甚至可以避免对资源消耗异常情况监控的影响。
本申请中的混合架构中独立TaskManager节点的资源归Flink作业独占,但并不是某个Flink作业的执行步骤独占,其他的Flink作业如果配置了同样的标记,也可以调度到这个节点上运行的,同样标记的独立TaskManager节点可以存在多个,这样多个绑定相同标记的步骤需要调度的时候,执行步骤分配器会以轮询的方式将这些执行步骤分布运行到所有匹配该标记的独立TaskManager节点上。充分利用这些节点的资源。同时又实现了节点故障时候的风险分担(其他标记匹配的节点相当于备份节点)。
参照图8,图8示出了本申请实施例提供的一种作业调度装置,所述装置可以包括:
接收模块801,用于接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
生成模块802,用于根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
第一确定模块803,用于根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
获取模块804,用于获取各个所述执行步骤对应的资源消耗;
第二确定模块805,用于根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
本申请实施例通过结合了Yarn集群和独立任务管理器节点部署形式的优点,根据各个执行步骤的类型确定各个执行步骤的运行位置,即保留Yarn集群调度的灵活性和资源共享特点,又实现了资源敏感型计算步骤可以使用到独立TaskManager节点充足的资源,实现了Flink作业集群的异构部署能力,使得Flink作业能够充分的利用到异构集群的资源,通过将依赖专门资源的步骤调度到匹配的节点执行,最大化资源的利用,减少流计算过程可能遇到性能瓶颈的风险。
本申请实施例还提供了一种通信设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,可以实现如下步骤:
接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
获取各个所述执行步骤对应的资源消耗;
根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的作业调度。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的作业调度。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或第三数据库通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或第三数据库进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、第三数据库等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第一等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (18)
1.一种作业调度方法,其特征在于,应用于Yarn,所述方法包括:
接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
获取各个所述执行步骤对应的资源消耗;
根据所述资源消耗和各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤;
所述执行步骤的类型包括:未绑定标记执行步骤以及绑定标记执行步骤,所述绑定标记执行步骤执行在所述独立任务管理器对应的节点上;
所述根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置包括:
在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为所述独立任务管理器;
在检测到所述执行步骤的类型为未绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为Yarn集群。
2.根据权利要求1所述的作业调度方法,其特征在于,所述资源消耗包括未绑定标记执行步骤对应的资源消耗,以及,绑定标记执行步骤对应的资源消耗。
3.根据权利要求2所述的作业调度方法,其特征在于,所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点包括:
在检测到所述资源消耗满足预设运行条件的情况下,根据所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点。
4.根据权利要求3所述的作业调度方法,其特征在于,所述根据所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点包括:
在检测到所述执行步骤对应的运行位置设置为所述独立任务管理器的情况下,所述执行步骤对应的目标节点为独立任务管理器节点;
在检测到所述执行步骤对应的运行位置设置为Yarn集群的情况下,所述执行步骤对应的目标节点为所述Yarn集群中任一节点。
5.根据权利要求1所述的作业调度方法,其特征在于,所述Yarn包括节点状态***和执行步骤分配器,所述节点状态***用于对独立任务管理器对应的节点信息进行维护,所述执行步骤分配器用于根据所述独立任务管理器对应的节点信息对所述独立任务管理器进行调度。
6.根据权利要求5所述的作业调度方法,其特征在于,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
所述节点状态***接收独立任务管理器发送的心跳;
所述节点状态***根据所述心跳确定所述独立任务管理器是否处于故障状态,并向所述执行步骤分配器发送节点变化信息。
7.根据权利要求6所述的作业调度方法,其特征在于,在所述所述节点状态***根据所述心跳确定所述独立任务管理器是否处于故障状态,并向所述执行步骤分配器发送节点变化信息的步骤之后,所述方法包括:
所述节点状态***在检测到所述独立任务管理器节点变化的情况下,所述执行步骤分配器向当前作业对应的工作管理器发送节点变化通知,以使所述工作管理器变更当前作业对应的独立任务管理器节点。
8.根据权利要求1所述的作业调度方法,其特征在于,所述根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置包括:
在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,执行步骤分配器从节点状态***中获取当前作业对应的独立任务管理器节点信息,根据所述绑定标记执行步骤对应的标签在所述独立任务管理器节点信息中匹配,生成所述绑定标记执行步骤的运行位置。
9.根据权利要求1所述的作业调度方法,其特征在于,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
在检测到所述目标节点处于故障状态的情况下,若所述目标节点为独立任务管理器节点,则将所述目标节点对应的所述执行步骤调度至相同绑定标记的第二目标节点,或者,基于预设节点调度策略,将所述目标节点对应的所述执行步骤调度至所述Yarn集群中任一节点;
若所述目标节点为Yarn节点,则将所述目标节点从所述Yarn集群中剔除,并将所述目标节点上对应的所述执行步骤调度至所述Yarn集群中的其他节点。
10.根据权利要求9所述的作业调度方法,其特征在于,在所述基于预设节点调度策略,将所述目标节点对应的所述执行步骤调度至所述Yarn集群中任一节点的步骤之后,所述方法包括:
停止执行所述目标节点对应的所述执行步骤,将所述目标节点对应的故障信息发送至用户,以使所述用户对所述目标节点进行维护。
11.根据权利要求1所述的作业调度方法,其特征在于,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
接收用户发送的独立任务管理器节点扩容指令;
根据所述独立任务管理器节点扩容指令创建目标独立任务管理器节点;
获取全部所述独立任务管理器节点对应的执行步骤数量平均值;
根据所述执行步骤数量平均值对所述目标独立任务管理器节点进行调度,直至所述目标独立任务管理器节点对应的执行步骤数量达到所述执行步骤数量平均值。
12.根据权利要求1所述的作业调度方法,其特征在于,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
接收用户发送的执行步骤调度的升级指令,其中,所述升级指令包括目标执行步骤;
根据所述升级指令和预设节点调度策略,将所述目标执行步骤所在的所述Yarn集群中任一节点调度至独立任务管理器节点。
13.根据权利要求1所述的作业调度方法,其特征在于,在所述根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤的步骤之后,所述方法包括:
接收用户发送的执行步骤调度的降级指令,其中,所述降级指令包括目标执行步骤;
根据所述降级指令和预设节点调度策略,将所述目标执行步骤所在的独立任务管理器节点调度至所述Yarn集群中任一节点。
14.一种作业调度***,其特征在于,所述作业调度***包括独立任务管理器节点,Yarn集群节点,以及Yarn;
所述独立任务管理器节点和所述Yarn集群节点之间通信连接;
所述独立任务管理器节点包括预先设置的独立任务管理器标记,所述独立任务管理器节点用于执行绑定标记执行步骤;
所述Yarn集群节点用于执行未绑定标记执行步骤;
所述Yarn用于接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;获取各个所述执行步骤对应的资源消耗;根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤;
所述执行步骤的类型包括:未绑定标记执行步骤以及绑定标记执行步骤,所述绑定标记执行步骤执行在所述独立任务管理器对应的节点上;
所述根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置包括:
在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为所述独立任务管理器;
在检测到所述执行步骤的类型为未绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为Yarn集群。
15.根据权利要求14所述的作业调度***,其特征在于,所述Yarn包括节点状态***和执行步骤分配器;
所述节点状态***用于对独立任务管理器对应的节点信息进行维护;
所述执行步骤分配器用于根据所述独立任务管理器对应的节点信息对所述独立任务管理器进行调度。
16.一种作业调度装置,其特征在于,所述装置包括:
接收模块,用于接收用户发送的预设作业程序,其中,所述预设作业程序包括预先设置的独立任务管理器标记;
生成模块,用于根据所述预设作业程序生成执行计划,其中,所述执行计划包括多个执行步骤;
第一确定模块,用于根据各个所述执行步骤的类型确定各个所述执行步骤的运行位置,其中,所述执行步骤的类型是根据所述独立任务管理器标记生成的;
获取模块,用于获取各个所述执行步骤对应的资源消耗;
第二确定模块,用于根据所述资源消耗和所述各个所述执行步骤的运行位置确定各个所述执行步骤对应的目标节点,并启动所述执行步骤;
所述执行步骤的类型包括:未绑定标记执行步骤以及绑定标记执行步骤,所述绑定标记执行步骤执行在所述独立任务管理器对应的节点上;
所述第一确定模块,还用于在检测到所述执行步骤的类型为绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为所述独立任务管理器;在检测到所述执行步骤的类型为未绑定标记执行步骤的情况下,将所述执行步骤对应的运行位置设置为Yarn集群。
17.一种通信设备,其特征在于,包括:收发机、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序;
所述处理器,用于读取存储器中的程序实现如权利要求1-13中任意一项所述作业调度方法。
18.一种可读存储介质,用于存储程序,其特征在于,所述程序被处理器执行时实现如权利要求1-13中任意一项所述作业调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310563072.6A CN116302452B (zh) | 2023-05-18 | 2023-05-18 | 作业调度方法、***、装置、通信设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310563072.6A CN116302452B (zh) | 2023-05-18 | 2023-05-18 | 作业调度方法、***、装置、通信设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302452A CN116302452A (zh) | 2023-06-23 |
CN116302452B true CN116302452B (zh) | 2023-08-22 |
Family
ID=86798179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310563072.6A Active CN116302452B (zh) | 2023-05-18 | 2023-05-18 | 作业调度方法、***、装置、通信设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302452B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及*** |
CN110618869A (zh) * | 2019-09-19 | 2019-12-27 | 北京思维造物信息科技股份有限公司 | 一种资源管理方法、装置及设备 |
CN114661462A (zh) * | 2022-03-04 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 资源分配方法、***、计算机可读存储介质及电子设备 |
CN114816866A (zh) * | 2022-05-09 | 2022-07-29 | 北京沃东天骏信息技术有限公司 | 故障处理方法、装置、电子设备和存储介质 |
CN116126937A (zh) * | 2022-12-29 | 2023-05-16 | 杭州数梦工场科技有限公司 | 作业调度方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9104493B2 (en) * | 2012-11-06 | 2015-08-11 | Facebook, Inc. | System and method for cluster management |
-
2023
- 2023-05-18 CN CN202310563072.6A patent/CN116302452B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及*** |
CN110618869A (zh) * | 2019-09-19 | 2019-12-27 | 北京思维造物信息科技股份有限公司 | 一种资源管理方法、装置及设备 |
CN114661462A (zh) * | 2022-03-04 | 2022-06-24 | 阿里巴巴(中国)有限公司 | 资源分配方法、***、计算机可读存储介质及电子设备 |
CN114816866A (zh) * | 2022-05-09 | 2022-07-29 | 北京沃东天骏信息技术有限公司 | 故障处理方法、装置、电子设备和存储介质 |
CN116126937A (zh) * | 2022-12-29 | 2023-05-16 | 杭州数梦工场科技有限公司 | 作业调度方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
蔡鲲鹏等.基于Flink on YARN平台的应用研究.《科技创新与应用》.2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116302452A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11385939B2 (en) | Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment | |
US8117641B2 (en) | Control device and control method for information system | |
CN102346460B (zh) | 一种基于事务的服务控制***及其控制方法 | |
US8863137B2 (en) | Systems and methods for automated provisioning of managed computing resources | |
US7424713B2 (en) | Method for allocating programs | |
CN111694633A (zh) | 集群节点负载均衡方法、装置及计算机存储介质 | |
US20050132379A1 (en) | Method, system and software for allocating information handling system resources in response to high availability cluster fail-over events | |
JP2011123881A (ja) | 一連の従属関係が予め定められたアクティビティを有するワークフローの複数のタスクサーバ上での実行 | |
EP2959387B1 (en) | Method and system for providing high availability for state-aware applications | |
CN107168777B (zh) | 分布式***中资源的调度方法以及装置 | |
CN112910937B (zh) | 容器集群中的对象调度方法、装置、服务器和容器集群 | |
US20100121904A1 (en) | Resource reservations in a multiprocessor computing environment | |
CN111831424B (zh) | 一种任务处理方法、***及装置 | |
CN112328307A (zh) | 一种开发运维一体化*** | |
CN103270520A (zh) | 基于重要性类的数据管理 | |
US20090089772A1 (en) | Arrangement for scheduling jobs with rules and events | |
CN111240824A (zh) | 一种cpu资源调度方法及电子设备 | |
CN116302452B (zh) | 作业调度方法、***、装置、通信设备及存储介质 | |
CN102597957B (zh) | ***部署确定***、***部署确定方法及程序 | |
CN116974689A (zh) | 集群容器调度方法、装置、设备及计算机可读存储介质 | |
US20210303339A1 (en) | Data backup method, electronic device and computer program product | |
CN109450913A (zh) | 一种基于策略的多节点注册调度方法 | |
JP4834708B2 (ja) | リソース割当方法、リソース割当プログラム、および、フロー処理システム | |
US8589924B1 (en) | Method and apparatus for performing a service operation on a computer system | |
US8402465B2 (en) | System tool placement in a multiprocessor computer |
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 |