CN108228328B - 一种流任务实现方法、装置及电子设备 - Google Patents
一种流任务实现方法、装置及电子设备 Download PDFInfo
- Publication number
- CN108228328B CN108228328B CN201810010283.6A CN201810010283A CN108228328B CN 108228328 B CN108228328 B CN 108228328B CN 201810010283 A CN201810010283 A CN 201810010283A CN 108228328 B CN108228328 B CN 108228328B
- Authority
- CN
- China
- Prior art keywords
- task
- flow
- master
- flow task
- stream
- 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种流任务实现方法、装置及电子设备,所述方法包括:在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将所述多个流任务中除所述master流任务之外的其他流任务作为follower流任务;控制所述master流任务对应的机房执行所述master流任务;当检测到所述master流任务在执行过程中出现异常时,在所述follower流任务中选择一个流任务作为当前master流任务;并控制所述当前master流任务对应的机房执行所述当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种流任务实现方法、装置及电子设备。
背景技术
分布式实时流任务框架,例如Spark Streaming、Flink、Storm等均可实现大规模的实时流数据处理。在实现实时流数据处理时,当某台机器或者某几台机器出现错误宕机后,分布式实时流任务框架会将出现错误的机器上的任务重新调度到正常的机器上运行,以保证流任务的正常运行。
然而,发明人在实现本发明的过程中发现,现有技术至少存在如下问题:现有的分布式实时流任务框架无法处理运行流任务的整个集群不可用的情况,例如:1、运行流任务的集群出现异常或者需要停机维护;2.流任务框本身错误导致运行流任务的集群不可用;3.运行流任务的集群所在的机房网络异常等。当运行流任务的集群出现这些问题时,分布式实时流任务框架是不可用的。
发明内容
本发明实施例的目的在于提供一种流任务实现方法、装置及电子设备,以在运行流任务的集群出现故障时,保证流任务的正常运行。具体技术方案如下:
为达到上述目的,第一方面,本发明实施例公开了一种流任务实现方法,该方法包括:
在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将所述多个流任务中除所述master流任务之外的其他流任务作为follower流任务;
控制所述master流任务对应的机房执行所述master流任务;
当检测到所述master流任务在执行过程中出现异常时,在所述follower流任务中选择一个流任务作为当前master流任务;
控制所述当前master流任务对应的机房执行所述当前master流任务。
可选地,上述方法还包括:
在所述master流任务对应的机房执行所述master流任务过程中,控制所述master流任务对应的机房按照预设时间间隔将所述master流任务的执行状态存储至外部数据库或文件系统;
所述控制所述当前master流任务对应的机房执行所述当前master流任务,包括:
控制所述当前master流任务对应的机房从所述外部数据库或文件系统读取所述master流任务的执行状态,并将所述当前master流任务的状态恢复至所述执行状态,执行状态恢复后的所述当前master流任务。
可选地,上述方法还包括:
在所述当前master流任务对应的机房执行所述当前master流任务过程中,控制所述当前master流任务对应的机房按照预设时间间隔将所述当前master流任务的执行状态存储至外部数据库或文件系统。
可选地,所述在所述follower流任务中选择一个流任务作为当前master流任务的步骤之后,上述方法还包括:
当检测到所述master流任务恢复正常后,将恢复正常的所述master流任务作为follower流任务。
可选地,所述在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,包括:
通过Zookeeper在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务;
所述在所述follower流任务中选择一个流任务作为当前master流任务,包括:
通过所述Zookeeper在所述follower流任务中选择一个流任务作为当前master流任务。
第二方面,本发明实施例公开了一种流任务实现装置,该装置包括:
第一选择模块,用于在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将所述多个流任务中除所述master流任务之外的其他流任务作为follower流任务;
第一控制模块,用于控制所述master流任务对应的机房执行所述master流任务;
第二选择模块,用于当检测到所述master流任务在执行过程中出现异常时,在所述follower流任务中选择一个流任务作为当前master流任务;
第二控制模块,用于控制所述当前master流任务对应的机房执行所述当前master流任务。
可选地,上述装置还包括:
第三控制模块,用于在所述master流任务对应的机房执行所述master流任务过程中,控制所述master流任务对应的机房按照预设时间间隔将所述master流任务的执行状态存储至外部数据库或文件系统;
所述第二控制模块,具体用于控制所述当前master流任务对应的机房从所述外部数据库或文件系统读取所述master流任务的执行状态,并将所述当前master流任务的状态恢复至所述执行状态,执行状态恢复后的所述当前master流任务。
可选地,上述装置还包括:
第四控制模块,用于在所述当前master流任务对应的机房执行所述当前master流任务过程中,控制所述当前master流任务对应的机房按照预设时间间隔将所述当前master流任务的执行状态存储至外部数据库或文件系统。
可选地,上述装置还包括:
恢复模块,用于在所述第二选择模块在所述follower流任务中选择一个流任务作为当前master流任务之后,当检测到所述master流任务恢复正常后,将恢复正常的所述master流任务作为follower流任务。
可选地,所述第一选择模块,具体用于通过Zookeeper在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务;
所述第二选择模块,具体用于通过所述Zookeeper在所述follower流任务中选择一个流任务作为当前master流任务。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现如上第一方面所述的流任务实现的方法步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上第一方面所述的流任务实现的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如上第一方面所述的流任务实现的方法步骤。
本发明实施例提供的流任务实现方法、装置及电子设备,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将所述多个流任务中除所述master流任务之外的其他流任务作为follower流任务;控制所述master流任务对应的机房执行所述master流任务;当检测到所述master流任务在执行过程中出现异常时,在所述follower流任务中选择一个流任务作为当前master流任务;控制所述当前master流任务对应的机房执行所述当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的第一种流任务实现方法的流程示意图;
图2为本发明实施例提供的第二种流任务实现方法的流程示意图;
图3为本发明实施例提供的第三种流任务实现方法的流程示意图;
图4为本发明实施例提供的第四种流任务实现方法的流程示意图;
图5为本发明实施例提供的第一种流任务实现装置的结构示意图;
图6为本发明实施例提供的第二种流任务实现装置的结构示意图;
图7为本发明实施例提供的第三种流任务实现装置的结构示意图;
图8为本发明实施例提供的第四种流任务实现装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明实施例提供的第一种流任务实现方法的流程示意图,该方法包括以下步骤:
S101,在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务。
在分布式流任务框架中,如Spark Streaming、Flink、Storm等,分布式流任务被划分若干个任务,对应地由集群中的若干个机器分别执行对应的任务。集群中的若干机器一般存放于一机房中。当集群中的某台机器出现问题后,分布式流任务框架可以将出现问题的机器所要执行的或正在执行的任务调度到集群中其他处于正常工作状态的机器上继续执行。
针对在分布式流任务的执行过程中整个集群出现故障的情况,本实施例中,可以预先在多个机房部署逻辑相同的多个流任务,即在每个机房均部署逻辑相同的流任务。逻辑相同的流任务是指:将流任务划分为若干任务的划分规则及划分结果相同,以及不同任务间的数据依赖关系相同。具体地,可以由存放于每个机房的集群中的若干个机器执行对应的任务。
例如,流任务A被划分为:任务a、任务b、任务c,则可以在3个机房,即机房1、机房2、机房3部署逻辑相同的流任务A。具体地,机房1存放的集群1中的机器11、12、13依次分别执行任务a、b、c;同样,机房2存放的集群2中的机器21、22、23依次分别执行任务a、b、c;机房3存放的集群3中的机器31、32、33依次分别执行任务a、b、c。
需要说明的是,在多个机房部署了逻辑相同的流任务,并不意味着在同一时间段内每个机房都执行流任务,实际上,在同一时间段内只有一个机房执行流任务。因而,在流任务未开启之前,需要在多个机房预先部署的逻辑相同的流任务中选择一个流任务来执行,被选择执行的流任务可以称为master流任务。
一种实现方式中,在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,可以包括:
通过Zookeeper在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务。
Zookeeper是一种分布式应用程序协调服务,可以为分布式应用提供一致性服务,提供的服务包括:配置维护、域名服务、分布式同步、组服务等。一般Zookeeper的核心机制包括:选主流程和同步流程。当服务刚启动、leader崩溃、follower不足半数时,系统就进入选主流程,此时不对外提供服务;当leader被选举出来后,系统就进入同步流程,服务之间完成状态同步,此后对外提供服务。在选主流程中,常用的算法为FashLeaderElection算法。
本实施例中,在流任务未启动之前,可以基于Zookeeper的选举机制,具体通过FashLeaderElection算法在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为被选择执行的master流任务,相当于基于Zookeeper的选举机制,在多个流任务中进行第一次选主。上述FashLeaderElection算法属于现有技术,本实施例在此不做详细介绍。
可以理解,在上述多个流任务中选择一个流任务作为master流任务后,那么可以将多个流任务中除master流任务之外的其他流任务作为follower流任务。follower流任务在Zookeeper的选主流程中可以参与投票,但在选择出master流任务之后,follower流任务并不执行具体的任务。
S102,控制master流任务对应的机房执行master流任务。
选择出master流任务之后,可以控制master流任务对应的机房按照预先对流任务进行划分任务的划分结果,以及不同任务间的数据依赖关系执行master流任务。具体地,可以由存放于master流任务对应的机房的集群中的若干机器按照划分结果和执行顺序执行对应的任务。
例如,在步骤S101的示例中,如果将机房1部署的流任务A选择为master流任务,那么,可以由机房1存放的集群1中的机器11、12、13依次分别执行任务a、b、c。
当然,在master流任务对应的机房执行master流任务时,follower流任务对应的机房并不执行对应的任务,即follower流任务处于standby状态。在步骤S101中具体是通过Zookeeper选择出master流任务的情况下,在master流任务对应的机房执行master流任务的期间,follower流任务可以作为监听者,监听来自Zookeeper的关于流任务的执行状态发生改变的信息。也就是说,当流任务的执行状态发生改变时,Zookeeper会将流任务的执行状态改变信息通知给follower流任务。可以理解,具体的,Zookeeper会将流任务的执行状态改变信息通知给follower流任务对应的机房。
例如,在步骤S101的实例中,如果将机房1部署的流任务A选择为master流任务,那么,可以将机房2、机房3部署的流任务A选择为follower流任务。
S103,当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务。
本实施例中,master流任务在执行过程中出现异常可以包括:1、运行流任务的集群出现异常或者需要停机维护;2.流任务框本身错误导致运行流任务的集群不可用;3.运行流任务的集群所在的机房网络异常等。
当master流任务在执行过程中出现异常后,为了保证流任务的正常执行,可以在处于standby状态的follower流任务中选择一个流任务作为当前master流任务,以由当前master流任务对应的机房继续执行流任务。
一种实现方式中,在所述follower流任务中选择一个流任务作为当前master流任务,可以包括:
通过Zookeeper在follower流任务中选择一个流任务作为当前master流任务。
本实现方式中,相当于基于Zookeeper的选举机制,在当前可用的处于standby状态的follower流任务中进行第二次选主。具体的实现过程可以参考步骤S101中的第一次选主的实现过程,这里不再赘述。
例如,在步骤S101的实例中,将机房2部署的流任务A选择为当前master流任务。
S104,控制当前master流任务对应的机房执行当前master流任务。
选择出当前master流任务之后,可以控制当前master流任务对应的机房按照预先对流任务进行划分任务的划分结果,以及不同任务间的数据依赖关系执行当前master流任务。具体地,可以由存放于当前master流任务对应的机房的集群中的若干机器按照划分结果和执行顺序执行对应的任务。
例如,在步骤S101的实例中,如果将机房2部署的流任务A选择为当前master流任务,那么,可以由机房2存放的集群1执行流任务A。
本发明实施例提供的流任务实现方法,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
图2为本发明实施例提供的第二种流任务实现方法的流程示意图,该方法包括以下步骤:
S201,在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务。
S202,控制master流任务对应的机房执行master流任务。
本实施例中,上述步骤S201-S202可以分别与图1所示实施例中的步骤S101-S102完全相同,这里不再赘述。
S203,在master流任务对应的机房执行master流任务过程中,控制master流任务对应的机房按照预设时间间隔将master流任务的执行状态存储至外部数据库或文件系统。
master流任务的执行状态可以包括:master流任务当前已处理了哪些数据,以及当前未处理哪些数据等。还可以包括:master流任务具体在执行划分了的哪个任务等。
上述外部数据库可以包括:MySQL数据库等。
在master流任务对应的机房执行master流任务过程中,可以控制master流任务对应的机房按照预设时间间隔将master流任务的执行状态存储至外部数据库或文件系统,这样,当master流任务在执行过程中出现如步骤S103中的异常时,接替master流任务的任一follower流任务可以获知master流任务当前的执行状态,并从该执行状态开始执行流任务,而不必从头执行整个流任务。预设时间间隔可根据工业需要进行设定。
可以理解,步骤S203是在步骤S202执行的同时执行的。
S204,当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务。
本实施例中,上述步骤S204可以分别与图1所示实施例中的步骤S103完全相同,这里不再赘述。
S205,控制当前master流任务对应的机房执行当前master流任务。
本实施例中,控制当前master流任务对应的机房执行当前master流任务,可以包括:控制当前master流任务对应的机房从外部数据库或文件系统读取master流任务的执行状态,并将当前master流任务的状态恢复至执行状态,执行状态恢复后的当前master流任务。
例如,机房1部署的流任务A为master流任务,流任务A被划分为:任务a、任务b、任务c,在步骤S203中,机房1按照预设时间间隔将master流任务的执行状态存储至外部数据库或文件系统。假设master流任务当前的发送执行状态为,机房1存放的集群1中的机器11执行任务a完毕。当前master流任务为机房2部署的流任务A,则机房2从外部数据库或文件系统读取master流任务当前的执行状态,并将当前master流任务的状态恢复至执行状态,即将当前master流任务的状态恢复至执行任务a完毕这一状态,继而机房2执行状态恢复后的当前master流任务。具体地,机房2存放的集群2中的机器22开始执行任务b。
本发明实施例提供的流任务实现方法,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
图3为本发明实施例提供的第三种流任务实现方法的流程示意图,该方法包括以下步骤:
S301,在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务。
S302,控制master流任务对应的机房执行master流任务。
S303,在master流任务对应的机房执行master流任务过程中,控制master流任务对应的机房按照预设时间间隔将master流任务的执行状态存储至外部数据库或文件系统。
S304,当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务。
S305,控制当前master流任务对应的机房执行当前master流任务。
本实施例中,上述步骤S301-S305可以分别与图2所示实施例中的步骤S201-S205完全相同,这里不再赘述。
S306,在当前master流任务对应的机房执行当前master流任务过程中,控制当前master流任务对应的机房按照预设时间间隔将当前master流任务的执行状态存储至外部数据库或文件系统。
本实施例中,在当前master流任务对应的机房执行当前master流任务过程中,可以控制当前master流任务对应的机房按照预设时间间隔将当前master流任务的执行状态存储至外部数据库或文件系统,这样,当当前master流任务在执行过程中出现如步骤S103中的异常时,接替master流任务的任一follower流任务可以获知当前master流任务当前的执行状态,并从该执行状态开始执行流任务,而不必从头执行整个流任务。
可以理解,步骤S306是在步骤S305执行的同时执行的。
本发明实施例提供的流任务实现方法,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
图4为本发明实施例提供的第四种流任务实现方法的流程示意图,该方法包括以下步骤:
S401,在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务。
S402,控制master流任务对应的机房执行master流任务。
S403,当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务。
本实施例中,步骤S401-S403可以分别与图1实施例中的步骤S101-S103完全相同,这里不再赘述。
S404,当检测到master流任务恢复正常后,将恢复正常的master流任务作为follower流任务。
由步骤S403可知,当master流任务在执行过程中出现异常时,意味着master流任务对应的机房已不能执行master流任务,则该机房退出了流任务服务。可以理解,如果某个机房退出了流任务服务,特别是针对该机房出现了网络故障或该机房存放的集群的若干设备出现故障的情况,机房维护人员可以对该机房进行维护。
当检测到master流任务对应的机房恢复正常后,意味着该机房该机房部署的流任务恢复正常。可以将恢复正常的流任务作为follower流任务,以便于在当前master流任务在执行过程中出现异常时,将恢复正常的流任务可以作为当前master流任务对应的follower流任务之一,可以从中选择一个流任务进行切换。
S405,控制当前master流任务对应的机房执行当前master流任务。
本实施例中,步骤S405可以与图1实施例中的步骤S104完全相同,这里不再赘述。
本发明实施例提供的流任务实现方法,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
需要说明的是,上述任一流任务实现的方法实施例中,给出的是一次当master流任务在执行过程中出现异常时切换为当前master流任务的过程,但在实际使用中,只要当前正在执行的master流任务出现异常,均可以通过本申请给出的上述流任务实现方法进行master流任务的切换,以保证整个流任务执行完成。
图5为本发明实施例提供的第一种流任务实现装置的结构示意图,该装置包括:第一选择模块501、第一控制模块502、第二选择模块503和第二控制模块504,其中,
第一选择模块501,用于在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;
第一控制模块502,用于控制master流任务对应的机房执行master流任务;
第二选择模块503,用于当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;
第二控制模块504,用于控制当前master流任务对应的机房执行当前master流任务。
一种实现方式中,第一选择模块501,具体用于通过Zookeeper在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务;
第二选择模块503,具体用于通过Zookeeper在follower流任务中选择一个流任务作为当前master流任务。
本发明实施例提供的流任务实现装置,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
图6为本发明实施例提供的第二种流任务实现装置的结构示意图,该装置包括:第一选择模块601、第一控制模块602、第三控制模块603、第二选择模块604和第二控制模块605,其中,第一选择模块601、第一控制模块602和第二选择模块604可以分别与图5所示实施例中的第一选择模块501、第一控制模块502和第二选择模块503完全相同,这里不再重复。
本实施例中,第三控制模块603,用于在master流任务对应的机房执行master流任务过程中,控制master流任务对应的机房按照预设时间间隔将master流任务的执行状态存储至外部数据库或文件系统;
第二控制模块605,用于控制当前master流任务对应的机房从外部数据库或文件系统读取master流任务的执行状态,并将当前master流任务的状态恢复至执行状态,执行状态恢复后的当前master流任务。
本发明实施例提供的流任务实现装置,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
图7为本发明实施例提供的第三种流任务实现装置的结构示意图,该装置包括:第一选择模块701、第一控制模块702、第三控制模块703、第二选择模块704、第二控制模块705和第四控制模块706,其中,第一选择模块701、第一控制模块702、第三控制模块703、第二选择模块704、第二控制模块705可以分别与图6所示实施例中的第一选择模块601、第一控制模块602、第三控制模块603、第二选择模块604和第二控制模块605完全相同,这里不再重复。
本实施例中,第四控制模块706,用于在当前master流任务对应的机房执行当前master流任务过程中,控制当前master流任务对应的机房按照预设时间间隔将当前master流任务的执行状态存储至外部数据库或文件系统。
本发明实施例提供的流任务实现装置,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
图8为本发明实施例提供的第四种流任务实现装置的结构示意图,该装置包括:第一选择模块801、第一控制模块802、第二选择模块803、恢复模块804、第二控制模块805,其中,第一选择模块801、第一控制模块802、第二选择模块803、第二控制模块805可以分别与图5实施例中的第一选择模块501、第一控制模块502、第二选择模块503和第二控制模块504完全相同,这里不再重复。
本实施例中,恢复模块804,用于在第二选择模块在follower流任务中选择一个流任务作为当前master流任务之后,当检测到master流任务恢复正常后,将恢复正常的master流任务作为follower流任务。
本发明实施例提供的流任务实现装置,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:
在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;
控制master流任务对应的机房执行master流任务;
当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;
控制当前master流任务对应的机房执行当前master流任务。
本发明实施例提供的电子设备,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
上述电子设备提到的通信总线可以是外设部件互连标准(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)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的流任务实现方法。
本发明实施例提供的计算机可读存储介质内存储的指令,当其在计算机上运行时,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一的流任务实现方法。
本发明实施例提供的包含指令的计算程序产品,当其在计算机上运行时,通过在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将多个流任务中除master流任务之外的其他流任务作为follower流任务;控制master流任务对应的机房执行master流任务;当检测到master流任务在执行过程中出现异常时,在follower流任务中选择一个流任务作为当前master流任务;控制当前master流任务对应的机房执行当前master流任务。本发明实施例可以在运行流任务的集群出现故障时,保证流任务的正常运行。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/电子设备/存储介质/计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (11)
1.一种流任务实现方法,其特征在于,包括:
在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将所述多个流任务中除所述master流任务之外的其他流任务作为follower流任务;
控制所述master流任务对应的机房执行所述master流任务;
当检测到所述master流任务在执行过程中出现异常时,在所述follower流任务中选择一个流任务作为当前master流任务;
控制所述当前master流任务对应的机房执行所述当前master流任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述master流任务对应的机房执行所述master流任务过程中,控制所述master流任务对应的机房按照预设时间间隔将所述master流任务的执行状态存储至外部数据库或文件系统;
所述控制所述当前master流任务对应的机房执行所述当前master流任务,包括:
控制所述当前master流任务对应的机房从所述外部数据库或文件系统读取所述master流任务的执行状态,并将所述当前master流任务的状态恢复至所述执行状态,执行状态恢复后的所述当前master流任务。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前master流任务对应的机房执行所述当前master流任务过程中,控制所述当前master流任务对应的机房按照预设时间间隔将所述当前master流任务的执行状态存储至外部数据库或文件系统。
4.根据权利要求1所述的方法,其特征在于,所述在所述follower流任务中选择一个流任务作为当前master流任务的步骤之后,所述方法还包括:
当检测到所述master流任务恢复正常后,将恢复正常的所述master流任务作为follower流任务。
5.根据权利要求1-4任一项所述的方法,其特征在于,
所述在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,包括:
通过Zookeeper在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务;
所述在所述follower流任务中选择一个流任务作为当前master流任务,包括:
通过所述Zookeeper在所述follower流任务中选择一个流任务作为当前master流任务。
6.一种流任务实现装置,其特征在于,包括:
第一选择模块,用于在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务,并将所述多个流任务中除所述master流任务之外的其他流任务作为follower流任务;
第一控制模块,用于控制所述master流任务对应的机房执行所述master流任务;
第二选择模块,用于当检测到所述master流任务在执行过程中出现异常时,在所述follower流任务中选择一个流任务作为当前master流任务;
第二控制模块,用于控制所述当前master流任务对应的机房执行所述当前master流任务。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第三控制模块,用于在所述master流任务对应的机房执行所述master流任务过程中,控制所述master流任务对应的机房按照预设时间间隔将所述master流任务的执行状态存储至外部数据库或文件系统;
所述第二控制模块,具体用于控制所述当前master流任务对应的机房从所述外部数据库或文件系统读取所述master流任务的执行状态,并将所述当前master流任务的状态恢复至所述执行状态,执行状态恢复后的所述当前master流任务。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第四控制模块,用于在所述当前master流任务对应的机房执行所述当前master流任务过程中,控制所述当前master流任务对应的机房按照预设时间间隔将所述当前master流任务的执行状态存储至外部数据库或文件系统。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
恢复模块,用于在所述第二选择模块在所述follower流任务中选择一个流任务作为当前master流任务之后,当检测到所述master流任务恢复正常后,将恢复正常的所述master流任务作为follower流任务。
10.根据权利要求6-9任一项所述的装置,其特征在于,
所述第一选择模块,具体用于通过Zookeeper在多个机房预先部署的逻辑相同的多个流任务中选择一个流任务作为master流任务;
所述第二选择模块,具体用于通过所述Zookeeper在所述follower流任务中选择一个流任务作为当前master流任务。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810010283.6A CN108228328B (zh) | 2018-01-05 | 2018-01-05 | 一种流任务实现方法、装置及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810010283.6A CN108228328B (zh) | 2018-01-05 | 2018-01-05 | 一种流任务实现方法、装置及电子设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN108228328A CN108228328A (zh) | 2018-06-29 |
| CN108228328B true CN108228328B (zh) | 2020-11-06 |
Family
ID=62643087
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810010283.6A Active CN108228328B (zh) | 2018-01-05 | 2018-01-05 | 一种流任务实现方法、装置及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN108228328B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110321209A (zh) * | 2019-06-28 | 2019-10-11 | 北京奇艺世纪科技有限公司 | 一种任务数据处理方法、装置及电子设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102932210A (zh) * | 2012-11-23 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种PaaS云平台的节点监控方法和系统 |
| CN104753994A (zh) * | 2013-12-27 | 2015-07-01 | 杭州海康威视系统技术有限公司 | 基于集群服务器系统的数据同步方法及其装置 |
| CN105117286A (zh) * | 2015-09-22 | 2015-12-02 | 北京大学 | MapReduce中任务的调度方法和流水化执行方法 |
| CN105955820A (zh) * | 2016-04-20 | 2016-09-21 | 北京云宏信达信息科技有限公司 | 作业流控制方法、装置和系统 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2003292242A1 (en) * | 2003-12-15 | 2005-07-05 | Telefonaktiebolaget L M Ericsson (Publ) | Distributed medium acces control for broadband access systems |
-
2018
- 2018-01-05 CN CN201810010283.6A patent/CN108228328B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102932210A (zh) * | 2012-11-23 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种PaaS云平台的节点监控方法和系统 |
| CN104753994A (zh) * | 2013-12-27 | 2015-07-01 | 杭州海康威视系统技术有限公司 | 基于集群服务器系统的数据同步方法及其装置 |
| CN105117286A (zh) * | 2015-09-22 | 2015-12-02 | 北京大学 | MapReduce中任务的调度方法和流水化执行方法 |
| CN105955820A (zh) * | 2016-04-20 | 2016-09-21 | 北京云宏信达信息科技有限公司 | 作业流控制方法、装置和系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN108228328A (zh) | 2018-06-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111796960A (zh) | 一种机器人设备异常自动化恢复的方法及系统 | |
| CN106161090A (zh) | 一种分区集群系统的监测方法及装置 | |
| EP3591530B1 (en) | Intelligent backup and recovery of cloud computing environment | |
| CN111865632A (zh) | 分布式数据存储集群的切换方法及切换指令发送方法和装置 | |
| CN111092865A (zh) | 一种安全事件分析方法及系统 | |
| CN115687019A (zh) | 数据库集群的故障处理方法、智能监控平台、设备和介质 | |
| CN113064755B (zh) | 数据恢复方法、装置、设备、介质及程序产品 | |
| CN108228328B (zh) | 一种流任务实现方法、装置及电子设备 | |
| CN113489149A (zh) | 基于实时状态感知的电网监控系统业务主节点选取方法 | |
| CN117499210A (zh) | 一种双活集群仲裁方法、装置、计算机设备和存储介质 | |
| CN109271270A (zh) | 存储系统中底层硬件的故障排除方法、系统及相关装置 | |
| CN112269693B (zh) | 一种节点自协调方法、装置和计算机可读存储介质 | |
| CN119324858B (zh) | 告警处理中多Redis集群切换的方法、系统 | |
| CN114218050A (zh) | 一种云平台故障处理方法及装置 | |
| CN113760458A (zh) | 一种节点管理方法、装置、电子设备及存储介质 | |
| CN113126925A (zh) | 一种成员列表确定方法、装置、设备及可读存储介质 | |
| CN111090491B (zh) | 虚拟机任务状态的恢复方法、装置及电子设备 | |
| CN108154343B (zh) | 一种企业级信息系统的应急处理方法及系统 | |
| CN115080309B (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
| CN117290158A (zh) | 数据恢复方法、装置、电子设备及存储介质 | |
| CN113778763B (zh) | 一种三方接口服务故障智能切换方法及系统 | |
| CN113568719B (zh) | 一种业务故障处理方法、装置、电子设备及存储介质 | |
| CN115102862A (zh) | 一种用于sdn设备的自动同步方法及装置 | |
| CN110519393B (zh) | 自助设备的监管方法、装置、设备、服务器和介质 | |
| CN117294590A (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 |