CN116820715A - 作业重启方法、装置、计算机设备和可读存储介质 - Google Patents
作业重启方法、装置、计算机设备和可读存储介质 Download PDFInfo
- Publication number
- CN116820715A CN116820715A CN202310725401.2A CN202310725401A CN116820715A CN 116820715 A CN116820715 A CN 116820715A CN 202310725401 A CN202310725401 A CN 202310725401A CN 116820715 A CN116820715 A CN 116820715A
- Authority
- CN
- China
- Prior art keywords
- job
- change
- resource
- information
- rescheduling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000008859 change Effects 0.000 claims abstract description 234
- 230000007246 mechanism Effects 0.000 claims abstract description 40
- 238000012508 change request Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 92
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012423 maintenance Methods 0.000 claims description 14
- 238000001514 detection method Methods 0.000 claims description 8
- 230000000903 blocking effect Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 9
- 230000005856 abnormality Effects 0.000 description 6
- 230000008602 contraction Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- 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/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
Abstract
本申请涉及一种作业重启方法、装置、计算机设备和可读存储介质。所述方法包括:获取作业变更请求;所述作业变更请求中包括变更作业的作业信息;基于所述作业变更请求暂停调用所述变更作业对应的数据读取线程;在确定所述数据读取线程暂停的情况下,根据所述作业信息和预设的检查点机制重新调度所述变更作业。采用本方法可以避免作业重启时数据重复的问题。
Description
技术领域
本申请涉及大数据技术领域,特别是涉及一种作业重启方法、装置、计算机设备和可读存储介质。
背景技术
流式作业是长时间运行的作业,在生产实践过程中,通常会遇到节点异常(故障或者维修下线)、扩缩容、任务逻辑变动等需要重启作业的场景。
传统技术中,流式作业的重启是根据流式计算框架Flink的一致性检查点机制checkpoint重启恢复。然而,现有的作业重启方法存在数据重复的问题。
发明内容
本申请实施例提供了一种作业重启方法、装置、计算机设备和可读存储介质,可以避免作业重启时数据重复的问题。
第一方面,本申请实施例提供了一种作业重启方法,包括:
获取作业变更请求;所述作业变更请求中包括变更作业的作业信息;
基于所述作业变更请求暂停调用所述变更作业对应的数据读取线程;
在确定所述数据读取线程暂停的情况下,根据所述作业信息和预设的检查点机制重新调度所述变更作业。
第二方面,本申请实施例提供了一种作业重启装置,包括:
获取模块,用于获取作业变更请求;所述作业变更请求中包括变更作业的作业信息;
请求模块,用于基于所述作业变更请求暂停调用所述变更作业对应的数据读取线程;
重启模块,用于在确定所述数据读取线程暂停的情况下,根据所述作业信息和预设的检查点机制重新调度所述变更作业。
第三方面,本申请实施例提供了一种计算机设备,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面所述的作业重启方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法的步骤。
上述作业重启方法、装置、计算机设备和可读存储介质,基于获取的作业变更请求能够暂停调用变更作业对应的数据读取线程,从而可以在确定变更作业对应的数据读取线程暂停的情况下,根据变更作业的作业信息和预设的检查点机制重新调度变更作业,由于该过程中,在根据变更作业的作业信息和预设的检查点机制重新调度变更作业之前,将变更作业对应的数据读取线程进行了暂停,这样避免了根据预设的检查点机制重启作业时由于数据继续流动而导致数据重复的问题,解决了现有的利用检查点机制重启作业时存在的数据重复的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中作业重启方法的应用环境图;
图2为一个实施例中作业重启方法的流程图;
图3为一个实施例中暂停调用变更作业对应的数据读取线程的详细过程的示意图;
图4为另一个实施例中作业重启方法的流程图;
图5为另一个实施例中作业重启方法的流程图;
图6为另一个实施例中作业重启方法的流程图;
图7为一个实施例中去除资源集群中待下线机器的标签的详细过程的示意图;
图8为一个实施例中触发作业的平滑重启过程示意图;
图9为另一个实施例中作业重启方法的流程图;
图10为一个实施例中阻塞请求到的处理资源对应的检测线程释放处理资源的流程示意图;
图11为另一个实施例中作业重启方法的流程图;
图12为一个实施例中作业重启装置的结构框图;
图13为另一个实施例中作业重启装置的结构框图;
图14为另一个实施例中作业重启装置的结构框图;
图15为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先,需要说明的是,流式计算框架Flink的运行架构可以包括作业管理器JobManager、任务管理器TaskManager、资源管理器ResourceManager和分发器Dispatcher等,其中,Dispatcher可以跨作业运行,它为应用提交提供了状态传递REST接口,当一个应用被提交执行时,Dispatcher就会启动并将应用移交给一个JobManager,Dispatcher也会启动一个用户界面(User Interface,UI),用来方便地展示和监控作业执行的信息;JobManager控制一个应用程序的主进程,也就是说每个应用程序会被一个不同的JobManager所控制执行,JobManager会先接收到要执行的应用程序,这个应用程序包括:作业图(JobGraph)、逻辑数据流图(logical dataFlow graph)和打包了的所有类、库和其他资源的JAR包,JobManager会把JobGraph转换成一个物理层面的数据流图,这个图被叫做"执行图",也就是执行计划,包含了所有可以并发执行的任务,JobManager会向ResourceManager请求执行任务必要的资源,也就是TaskManager上的插槽(slot),JobManager获取了足够资源,就会将执行图分发到真正运行它们的TaskManager上,而在运行过程中Jobmanager会负责中央协调操作,比如checkpoint的协调。通常在Flink中会有多个TaskManager在运行,每个taskManager都包含了一定数量的插槽,启动之后,TaskManager会向资源管理器注册自身的插槽,收到资源管理器的指令之后,TaskManager就会将一个或者多个插槽提供给JobManager调用,JobManager就可以向插槽分配执行的任务task,在执行过程中,一个TaskManager可以和其他运行同一应用程序的TaskManager交换数据。进一步地,Flink为不同的环境和资源管理工具提供了不同资源管理器,比如YARN,Mesos,K8s以及standalone等,ResourceManager主要负责TaskManger的插槽slot,当JobManager申请插槽资源时,ResourceManager会将有空闲插槽的TaskManager分配给JobManager,如果ResourceManager没有足够的插槽来满足JobManager的请求,它还可以向资源提供平台发起会话,以提供启动TaskManager进程的容器。
通常,流式作业在运行过程中,遇到节点异常(故障或者维修下线)、运行作业的资源扩缩容、任务逻辑变动等需要重启作业的场景时,传统技术中是根据Flink的一致性检查点机制checkpoint重启作业,然而由于checkpoint检查机制是同步加异步的,异步过程中,数据还是会继续流动的。对于没有实现两阶段提交的输出算子sink来说还是会有数据写入,最终还是避免不了数据重复,导致现有的作业重启方法存在数据重复的问题。
本申请实施例提供的作业重启方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以向服务器104提交作业变更请求,服务器104可以基于获取的作业变更请求重新调度作业变更请求对应的变更作业。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种作业重启方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S201,获取作业变更请求;作业变更请求中包括变更作业的作业信息。
首先,需要说明的是,流式作业是长时间运行的作业,在生产实践过程中,通常会遇到例如节点异常(故障或者维修下线)、运行作业的资源弹性伸缩、任务逻辑变动等需要重启作业的场景,本实施例中的变更作业可以为上述节点异常产生的变更作业,也可以为上述弹性伸缩产生的变更作业,也可以为上述任务逻辑变动产生的变更作业,或者,也可以为上述节点异常、弹性伸缩、任务逻辑变动中的任意两种或者三种结合产生的变更作业,又或者也可以为其他变更原因产生的变更作业,本实施例在此不做限制。
可选的,在本实施例中,可以在Flink的Dispatcher中添加作业变更接口,服务器可以通过该作业变更接口获取终端提交的作业变更请求,其中,该作业变更请求中可以包括变更作业的作用信息,例如,作业变更请求中可以包括变更作业的变更类型和变更作业所需的资源信息等。
S202,基于作业变更请求暂停调用变更作业对应的数据读取线程。
通常,由于checkpoint运行过程中是同步加异步的,异步运行过程中,数据还是会继续流动的,对于没有实现两阶段提交的输出算子sink来说还是会有数据写入,最终使得重启的作业中存在数据重复的问题,因此,在本实施例中,为了避免重启作业中的数据重复,在获取到作业变更请求后,可以基于作业变更请求将变更作业对应的数据读取线程暂停。作为一种可选的实施方式,暂停调用变更作业对应的数据读取线程的详细过程可以参见图3,如图3所示,首先,JobManager发起checkpoint请求,源运算符流任务SourceOperator Stream Task接收到checkpoint请求后,数据源Source Operator发起暂停调用变更作业对应的数据读取线程的请求,暂停变更作业对应的数据读取线程的调用。
S203,在确定数据读取线程暂停的情况下,根据作业信息和预设的检查点机制重新调度变更作业。
在本实施例中,请继续参见图3,在确定变更作业对应的数据读取线程暂停调用的情况下,可以通过触发checkpoint检查点机制,根据变更作业的作业信息重新调度变更作业。可选的,在本实施例中,可以根据变更作业的作业信息确定变更作业所需的资源量,从而向ResourceManager请求执行变更作业所需的资源,在申请到执行变更作业所需的资源后,根据检查点机制和申请到的执行变更作业所需的资源重新调度变更作业。
上述作业重启方法中,基于获取的作业变更请求能够暂停调用变更作业对应的数据读取线程,从而可以在确定变更作业对应的数据读取线程暂停的情况下,根据变更作业的作业信息和预设的检查点机制重新调度变更作业,由于该过程中,在根据变更作业的作业信息和预设的检查点机制重新调度变更作业之前,将变更作业对应的数据读取线程进行了暂停,这样避免了根据预设的检查点机制重启作业时由于数据继续流动而导致数据重复的问题,解决了现有的利用检查点机制重启作业时存在的数据重复的问题。
在上述在确定变更作业对应的数据读取线程暂停的情况下,根据变更作业的作业信息和预设的检查点机制重新调度变更作业的场景中,可以先确定出变更作业的作业类型,进而基于变更作业的作业类型和上述检查点机制重新调度变更作业。在一个实施例中,如图4所示,上述S203,包括:
S301,根据作业信息确定变更作业的变更类型。
如上述实施例中所描述的,变更作业可能是由于节点异常(故障或者维修下线)、运行作业的资源弹性伸缩、任务逻辑变动中的一种或者多种变更原因产生的,因此,不同变更作业的变更类型也可能是不同的。在本实施例中,可选的,可以根据变更作业请求中的作业信息确定变更作业的变更类型,和上述变更原因相对应,可选的,变更作业的变更类型可以为节点异常,即机器故障或者维修,或者,变更作业的变更类型也可以为作业的执行速度较慢、运行作业的资源弹性伸缩,又或者,变更作业的变更类型也可以为作业运行逻辑变更等等,本实施例在此不对变更作业的变更类型加以限制。
S302,根据变更类型、作业信息和检查点机制重新调度变更作业。
在本实施例中,确定出变更作业的变更类型后,可以根据变更作业的变更类型对应的调度方法、变更作业的作业信息和上述检查点机制重新调度上述变更作业,恢复变更作业的运行。可选的,在本实施例中,不同的变更类型对应的调度方法可能是不同的,例如,当变更作业的变更类型是节点异常,即机器故障或者维修时,则在重新调度变更作业前,可以先将故障或者维修机器的标签从资源管理器中删除,再重新调度变更作业;当变更作业的变更类型是作业运行逻辑变更时,则需要确定变更后的作业运行逻辑,再重新调度变更作业。
本实施例中,根据作业变更请求中变更作业的作业信息,能够准确地确定出变更作业的变更类型,从而可以根据变更作业的变更类型、变更作业的作业信息以及预设的检查机制准确地重新调度变更作业,确保变更作业重新调度的准确度。
本实施例中将对重新调度变更作业的详细过程加以说明。在一个实施例中,如图5所示,上述S302,包括:
S401,根据变更类型和作业信息,请求变更作业对应的处理资源。
在本实施例中,在确定出变更作业的变更类型后,可以先根据变更作业的变更类型确定出请求变更作业对应的处理资源的资源集群,从而根据变更作业的作业信息从变更作业对应的资源集群中,请求变更作业对应的处理资源。可选的,上述资源集群可以为yarn集群、k8集群中的任一种集群,或者,上述资源集群可以为对yarn集群或者k8集群中的资源进行删除或者增加后的资源集群。
S402,根据检查点机制和处理资源重新调度变更作业。
可选的,在本实施例中,在请求到上述变更作业对应的处理资源后,服务器可以触发上述检查点机制,生成包括变更作业的状态信息和检查点信息的分布式快照,并在该检查点机制执行完成的情况下,释放掉变更作业对应的历史处理资源,基于上述分布式快照中变更作业的状态信息和检查点信息,利用上述请求到的处理资源重新调度变更作业。
本实施例中,根据变更作业的类型和变更作业的作业信息,能够预先请求到变更作业对应的处理资源,从而可以在请求到变更作业对应的处理资源的情况下,根据预设的检查点机制和请求到的处理资源重新调度变更作业,确保变更作业能够重新调度,使得变更作业能够重新调度运行。
可选的,变更作业的变更类型可以为机器故障或维修、作业的执行速度小于预设速度阈值、运行作业的资源扩缩容、作业运行逻辑变更等等,不同的变更类型对应的请求变更作业对应的处理资源的方法也可能不同,下边将对根据变更作业的变更类型和变更作业的作业信息,请求变更作业对应的处理资源的详细过程加以解释说明。
在上述根据变更作业的变更类型和变更作业的作业信息,请求变更作业对应的处理资源的场景中,在一个实施例中,如图6所示,上述S402,包括:
S501,若变更类型为机器故障或维修,则去除资源集群中待下线机器的标签。
在本实施例中,若确定变更作业对应的变更类型为机器故障或维修,则将待下线机器的标签从资源集群中去除,防止运维过程中有新的作业或者已有作业重新部署到这些机器上,进一步地,作为一种可选的实施方式,还可以将相同数量的机器加入资源集群中以替换待下线机器,若资源充足的情况下也可以不加入相同数量的机器,并开始逐机器进行运维,查询待下线机器上运行的作业,对其中的每一个作业,调用Flink提供的平滑重启接口将该作业重启,并在验证重启成功时,将该机器从集群下线,无缝将待下线机器上运行的作业切换到新的节点上。
可选的,本实施例中的资源集群可以为yarn集群或者k8集群等,也就是说可以从yarn集群或者k8集群中去除待下线机器的标签。作为一种可选的实施方式,如图7所示,对于资源集群yarn,可以通过调用资源集群yarn的更新黑名单接口,将待下线机器加入黑名单中,本次资源申请将不会再使用黑名单节点,待变更作业重启结束后,将待下线机器重新加回白名单,下次可以继续调度该待下线机器;作为另一种可选的实施方式,请继续参见图7,对于资源集群k8,可以通过k8的节点亲和性特性,给待下线机器的标签打上黑名单标记,将待下线机器标记为黑名单节点,本次资源申请会过滤掉黑名单节点,下次调度时,不会加上待下线机器的标签,故下次依然可以调度上述待下线机器。
S502,根据作业信息,向去除标签后的资源集群请求处理资源。
在本实施例中,在资源集群中去除掉待下线机器的标签后,可以根据变更作业的信息,确定运行变更作业所需的资源量,通过JobManager根据运行变更作业所需的资源量向去除标签后的资源集群请求变更作业对应的处理资源,即TaskManager。可选的,在本实施例中,通过JobManager请求到TaskManager后,还可以将请求到的TaskManager注册到JobManager中,通过JobManager调用请求到的TaskManager。
本实施例中,若变更作业的变更类型为机器故障或维修,则通过去除资源集群中待下线机器的标签,能够确保去除待下线机器的标签后的资源集群中的机器都为可运行的机器,从而可以根据变更作业的作业信息,准确地向去除标签后的资源集群请求变更作业对应的第一处理资源,确保了请求的第一处理资源的准确度。
在上述根据变更作业的变更类型和变更作业的作业信息,请求变更作业对应的处理资源的场景中,在一个实施例中,上述S402,包括:若变更类型为作业的执行速度小于预设速度阈值、运行作业的资源扩缩容中的任一种,则根据作业信息,向资源集群请求处理资源。
通常,生产实践中,流式作业经常会遇到机器负载高导致某个子任务执行很慢,进而拖垮整个作业,在本实施例中,变更作业的变更类型为作业的执行速度小于预设速度阈值时,则说明运行变更作业的机器可能由于负载高而导致变更作业延迟。需要说明的是,如图8所示,流式作业启动后会实时上报指标信息到数据库,云监控平台调取数据库中的指标信息配置告警回调来触发节点黑名单的判定,根据预设的动态指标规则对调取的指标进行判定,如果满足预设的动态指标规则就会将该流式作业加入到节点黑名单,触发作业的平滑重启,如图8所示,上述预设的动态指标规则可以包括内存、磁盘、中央处理器(CentralProcessing Unit,CPU)占用较高、对齐超时、作业单分区延迟等等。
另外,流式作业运行中,为了提高资源利用率,流量高峰运行作业的资源将自动扩容,流量低谷运行作业的资源将自动缩容,当发生资源扩缩容时,流式作业会被重启,可选的,可以在流式作业运行中,根据运行流式作业资源的消费延迟、CPU利用率汇总、吞吐量、延迟等,判断运行流式作业的资源是否需要扩缩容。
在本实施例中,若确定出变更作业的变更类型为作业的执行速度小于预设速度阈值、运行作业的资源扩缩容中的任一种,则服务器可以根据变更作业的作业信息,确定运行变更作业所需的资源,从而重新向资源集群请求变更作业对应的处理资源,利用请求到的处理资源重启变更作业。
在本实施例中,需要说明的是,作为另一种可选的实施方式,当变更作业的变更类型为运行作业的资源扩容的情况下,也可以先向资源集群请求变更作业对应的处理资源,在请求到变更作业对应的处理资源后再暂停调用变更作业对应的数据读取线程。
本实施例中,若变更作业的变更类型为作业的执行速度小于预设速度阈值、运行作业的资源扩缩容中的任一种时,服务器根据变更作业的作业信息,能够准确地向资源集群请求变更作业对应的处理资源,从而可以根据请求到的处理资源重新调度变更作业,确保变更作业的重新调度运行。
在上述根据变更作业的变更类型和变更作业的作业信息,请求变更作业对应的处理资源的场景中,在一个实施例中,如图9所示,上述S402,包括:
S601,若变更类型为作业运行逻辑变更,则根据变更作业的运行逻辑,构建转换图。
首先,需要说明的是,在生产实践中,流式作业经常会有变更逻辑的需求,流式作业的逻辑变更之后,必须先下线作业,再重新调度上线作业,在本实施例中,若变更作业的变更类型为作业运行逻辑变更,则服务器可以根据变更作业的运行逻辑,将变更作业的运行逻辑转换为物理层面的数据流图,构建转换图,通过该转换图表征变更作业的运行逻辑。
S602,根据转换图和作业信息,向资源集群请求处理资源。
可选的,在本实施例中,可以根据构建的表征变更作业的运行逻辑的转换图和变更作业的作业信息,确定变更作业所需的资源,从而向资源集群请求变更作业对应的处理资源,利用请求到的处理资源重启变更作业。
本实施例中,若变更作业的变更类型为作业运行逻辑变更,则服务器可以根据变更作业的运行逻辑,准确地构建转换图,从而可以根据构建的转换图和变更作业的作业信息,准确地向资源集群请求变更作业对应的处理资源,确保了向资源集群请求到的变更作业对应的处理资源的准确度。
在上述请求到变更作业对应的处理资源的情况下,为了防止上述预设的检查点机制运行时间过长导致申请到的冗余资源被释放掉,可以先将申请到的变更作业对应的处理资源的检测线程阻塞避免释放请求到的变更作业的处理资源。在一个实施例中,上述方法还包括:在请求到变更作业对应的处理资源的情况下,在预设时长内阻塞处理资源对应的检测线程释放处理资源。
可以理解的是,在变更作业重启的情况下,可以先提前向资源集群请求变更作业对应的处理资源,在请求到变更作业对应的处理资源后重启作业,在未请求到变更作业对应的处理资源后暂不重启作业。
示例性地,在本实施例中,在请求到变更作业对应的处理资源的情况下,可以在预设时长内阻塞请求到的处理资源对应的检测线程释放上述处理资源,例如,如图10所示,可以在3min内阻塞变更作业对应的处理资源的检测线程,保持住请求到的处理资源,在阻塞3min后在30s内检测该处理资源是否空闲,在处理资源空闲的情况下再将处理资源释放掉,避免预设的检查点机制运行时间过长导致请求到的处理资源被释放掉,将请求到的处理资源保持住。
可以理解的是,相比于传统技术中基于保存点savepoint的重启方案,由于savepoint是一次全量的快照,因此快照和重启都是比较耗时的,同时还需要重新申请资源,这会导致重启恢复时间长,数据延迟大;针对资源比较紧张的情况下,重启作业可能由于申请不到资源无法启动,而通过在请求到变更作业对应的处理资源的情况下,在预设时长内阻塞请求到的处理资源对应的检测线程释放上述处理资源,可以避免预设的检查点机制运行时间过长导致请求到的处理资源被释放掉,将请求到的处理资源保持住。
本实施例中,在请求到变更作业对应的处理资源的情况下,通过在预设时长内阻塞变更作业的处理资源对应的检测线程释放请求到的处理资源,能够避免由于预设的检查点机制运行时间过长而导致请求到的处理资源被释放掉,能够保持住请求到的变更作业的处理资源。
为了便于本领域技术人员的理解,如图11所示,以变更作业的变更类型为机器故障或维修为例,以下结合一个完整的实施例对本申请提供的作业重启方法进行详细介绍:
S1,服务器去除资源集群中待下线机器的标签。
S2,服务器向流式计算框架Flink的分发器发起作业变更请求。
S3,通过分发器控制集群资源将待下线机器节点的TaskManager拉黑。
S4,通过分发器通知Flink的JobManager作业变更。
S5,通过JobManager向Flink的资源管理器发起请求,请求新的TaskManager。
S6,Flink的资源管理器接收到请求后,向集群资源申请资源。
S7,在资源管理器申请到资源的情况下创建新的TaskManager。
S8,将创建的新的TaskManager注册到JobManager。
S9,触发检查点机制。
S10,将拉黑的TaskManager释放。
S11,基于申请到的资源重启变更作业。
需要说明的是,针对上述S1-S11中的描述可以参见上述实施例中相关的描述,且其效果类似,本实施例在此不再赘述。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的作业重启方法的作业重启装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个作业重启装置实施例中的具体限定可以参见上文中对于作业重启方法的限定,在此不再赘述。
在一个实施例中,如图12所示,提供了一种作业重启装置,包括:获取模块10、请求模块11和重启模块12,其中:
获取模块10,用于获取作业变更请求;作业变更请求中包括变更作业的作业信息;
请求模块11,用于基于作业变更请求暂停调用变更作业对应的数据读取线程;
重启模块12,用于在确定数据读取线程暂停的情况下,根据作业信息和预设的检查点机制重新调度变更作业。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,如图13所示,可选的,上述重启模块12,包括:确定单元121和调度单元122,其中:
确定单元121,用于根据作业信息确定变更作业的变更类型。
调度单元122,用于根据变更类型、作业信息和检查点机制重新调度变更作业。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述调度单元122,具体用于根据变更类型和作业信息,请求变更作业对应的处理资源;根据检查点机制和处理资源重新调度变更作业。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述调度单元122,具体用于若变更类型为机器维修,则去除资源集群中待下线机器的标签;根据作业信息,向去除标签后的资源集群请求处理资源。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述调度单元122,具体用于若变更类型为作业的执行速度小于预设速度阈值、运行作业的资源扩缩容中的任一种,则根据作业信息,向资源集群请求处理资源。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述调度单元122,具体用于若变更类型为作业运行逻辑变更,则根据变更作业的运行逻辑,构建转换图;根据转换图和作业信息,向资源集群请求处理资源。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,如图14所示,可选的,上述装置还包括:处理模块13,其中:
处理模块13,用于在请求到处理资源的情况下,在预设时长内阻塞处理资源对应的检测线程释放处理资源。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
在上述实施例的基础上,可选的,上述调度单元122,具体用于触发检查点机制,生成分布式快照;分布式快照中包括变更作业的状态信息和检查点信息;在检查点机制执行完成的情况下,释放变更作业对应的历史处理资源;基于分布式快照,利用第一处理资源重新调度变更作业。
本实施例提供的作业重启装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
上述作业重启装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储处理资源。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种作业重启方法。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行作业重启方法的步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行作业重启方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (12)
1.一种作业重启方法,其特征在于,包括:
获取作业变更请求;所述作业变更请求中包括变更作业的作业信息;
基于所述作业变更请求暂停调用所述变更作业对应的数据读取线程;
在确定所述数据读取线程暂停的情况下,根据所述作业信息和预设的检查点机制重新调度所述变更作业。
2.根据权利要求1所述的方法,其特征在于,所述根据所述作业信息和预设的检查点机制重新调度所述变更作业,包括:
根据所述作业信息确定所述变更作业的变更类型;
根据所述变更类型、所述作业信息和所述检查点机制重新调度所述变更作业。
3.根据权利要求2所述的方法,其特征在于,所述根据所述变更类型、所述作业信息和所述检查点机制重新调度所述变更作业,包括:
根据所述变更类型和所述作业信息,请求所述变更作业对应的处理资源;
根据所述检查点机制和所述处理资源重新调度所述变更作业。
4.根据权利要求3所述的方法,其特征在于,所述根据所述变更类型和所述作业信息,请求所述变更作业对应的处理资源,包括:
若所述变更类型为机器故障或维修,则去除资源集群中待下线机器的标签;
根据所述作业信息,向去除所述标签后的资源集群请求所述处理资源。
5.根据权利要求3所述的方法,其特征在于,所述根据所述变更类型和所述作业信息,请求所述变更作业对应的处理资源,包括:
若所述变更类型为作业的执行速度小于预设速度阈值、运行作业的资源扩缩容中的任一种,则根据所述作业信息,向资源集群请求所述处理资源。
6.根据权利要求3所述的方法,其特征在于,所述根据所述变更类型和所述作业信息,请求所述变更作业对应的处理资源,包括:
若所述变更类型为作业运行逻辑变更,则根据变更作业的运行逻辑,构建转换图;
根据所述转换图和所述作业信息,向资源集群请求所述处理资源。
7.根据权利要求3-6任一项所述的方法,其特征在于,所述方法还包括:
在请求到所述处理资源的情况下,在预设时长内阻塞所述处理资源对应的检测线程释放所述处理资源。
8.根据权利要求3-6任一项所述的方法,其特征在于,所述根据所述检查点机制和所述处理资源重新调度所述变更作业,包括:
触发所述检查点机制,生成分布式快照;所述分布式快照中包括所述变更作业的状态信息和检查点信息;
在所述检查点机制执行完成的情况下,释放所述变更作业对应的历史处理资源;
基于所述分布式快照,利用所述处理资源重新调度所述变更作业。
9.一种作业重启装置,其特征在于,包括:
获取模块,用于获取作业变更请求;所述作业变更请求中包括变更作业的作业信息;
请求模块,用于基于所述作业变更请求暂停调用所述变更作业对应的数据读取线程;
重启模块,用于在确定所述数据读取线程暂停的情况下,根据所述作业信息和预设的检查点机制重新调度所述变更作业。
10.一种计算机设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述的作业重启方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310725401.2A CN116820715A (zh) | 2023-06-16 | 2023-06-16 | 作业重启方法、装置、计算机设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310725401.2A CN116820715A (zh) | 2023-06-16 | 2023-06-16 | 作业重启方法、装置、计算机设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116820715A true CN116820715A (zh) | 2023-09-29 |
Family
ID=88113912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310725401.2A Pending CN116820715A (zh) | 2023-06-16 | 2023-06-16 | 作业重启方法、装置、计算机设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820715A (zh) |
-
2023
- 2023-06-16 CN CN202310725401.2A patent/CN116820715A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11425194B1 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
WO2017071460A1 (zh) | 一种容器监控方法和装置 | |
AU2014309371B2 (en) | Virtual hadoop manager | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US8260840B1 (en) | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program | |
US7698602B2 (en) | Systems, methods and computer products for trace capability per work unit | |
US9483314B2 (en) | Systems and methods for fault tolerant batch processing in a virtual environment | |
US20180246751A1 (en) | Techniques to select virtual machines for migration | |
US9535754B1 (en) | Dynamic provisioning of computing resources | |
JP2016129056A (ja) | フォールトトレラントバッチ処理 | |
US20150378782A1 (en) | Scheduling of tasks on idle processors without context switching | |
US10075326B2 (en) | Monitoring file system operations between a client computer and a file server | |
US20230305876A1 (en) | Managing storage domains, service tiers, and failed servers | |
US10860431B2 (en) | System and method for fault tolerant backup generation in a virtual environment | |
US9195528B1 (en) | Systems and methods for managing failover clusters | |
CN111538585A (zh) | 一种基于node.js的服务器进程调度方法、系统和装置 | |
US9507637B1 (en) | Computer platform where tasks can optionally share per task resources | |
US10095533B1 (en) | Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment | |
CN114942859A (zh) | 节点故障的处理方法、装置、设备、介质和程序产品 | |
US11533391B2 (en) | State replication, allocation and failover in stream processing | |
US9612907B2 (en) | Power efficient distribution and execution of tasks upon hardware fault with multiple processors | |
US11593220B2 (en) | Ticketing system for managing computing services | |
US11544091B2 (en) | Determining and implementing recovery actions for containers to recover the containers from failures | |
CN116820715A (zh) | 作业重启方法、装置、计算机设备和可读存储介质 | |
CN114237891A (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 |