批处理集群系统以及方法

文档序号:9826156阅读:313来源:国知局
批处理集群系统以及方法
【技术领域】
[0001]本发明涉及批处理应用,更具体来说,涉及一种批处理集群系统以及方法。
【背景技术】
[0002]目前业内批处理系统在大部分实际应用场景下,都在一台机器上完成批处理的整体运行,因此运行失败,只能手动恢复(重新启动任务),同时还需要检测运行失败的批处理元数据,甚至需要手动修改状态数据,从而导致系统不易维护和使用,业务无法连续。现有的批处理系统的具体缺点如下:
I)批处理系统没有灵活的异常处理机制,无法灵活配置异常忽略机制,以及异常重试机制,从而保证批处理任务的连续性和健壮性。
[0003]2)批处理系统自身提供的主从方式,主节点有单点故障,因此故障无法自动转移恢复,同时子节点如果运行失败,也无法保证任务故障转移。
[0004]3)集群中对子节点任务分发是固定的,无法根据子节点的运行负载状况和任务的具体情况动态配置,因此无法真正高效的利用服务器的性能,来提高批处理效率。

【发明内容】

[0005]为了解决上述问题,本申请提供了一种批处理集群系统,所述系统包括:多个任务主节点,用于通过领域特定语言定义批处理任务的具体配置、分解和运行流程;多个执行子节点,用于根据所述具体配置、分解和运行流程来执行所述批处理任务中的分解步骤;以及分布式协调器,用于管理所述多个任务主节点,其中在任一时刻,在所述多个任务主节点中只有一个任务主节点被所述分布式协调器选择处于工作状态,而所述多个任务主节点中的其它节点则处于备用状态。
[0006]在上述批处理集群系统中,所述分布式协调器配置成存储批处理运行过程中的所有元数据。
[0007]在上述批处理集群系统中,处于工作状态的任务主节点配置成在运行过程中向所述分布式协调器写入与任务的运行以及状态相关的元数据信息,而所述多个执行子节点配置成在运行过程中向所述分布式协调器写入与所述任务中分解步骤的运行以及状态相关的元数据信息。
[0008]在上述批处理集群系统中,所述任务主节点包括:健康检查协调器,用于侦测处于工作状态的任务主节点的健康状况;故障恢复控制器,用于在所述处于工作状态的任务主节点无法正常工作时,根据存储的运行时元数据进行批处理运行上下文的恢复;任务分解处理器,用于根据预先配置的任务和数据分解策略对任务或数据进行拆分,并将拆分后的数据通过虚拟文件系统接口存放到文件中;以及任务执行协调器,用于负责分发任务主节点分解的任务。
[0009]在上述批处理集群系统中,所述任务执行协调器进一步配置成依据各执行子节点的运行负载和健康状态,对分解的任务进行分发。
[0010]在上述批处理集群系统中,所述执行子节点包括心跳器,用于定时向所述任务执行协调器发送健康消息。
[0011]根据本申请的另一个方面,提供了一种由根据之前所述的批处理集群系统执行的方法,所述方法包括:从外部系统接收向所述批处理集群系统提交的任务;由所述批处理集群系统中处于工作状态的一个任务主节点进行任务和数据拆分,并在所述拆分完成之后,进行步骤分解的子任务的分发;由所述批处理集群系统中的执行子节点执行由所述任务主节点分发过来的任务,并在执行过程中更新所述批处理集群系统中的分布式协调器中批处理运行的元数据信息;以及由所述任务主节点监测步骤分解的所有子任务是否执行成功;其中,在任一时刻,在所述多个任务主节点中只有一个任务主节点被所述分布式协调器选择处于工作状态,而所述多个任务主节点中的其它节点则处于备用状态。
[0012]在上述方法中,在批处理执行过程中,所述批处理集群系统中的分布式协调器不断监控处于工作状态的一个任务主节点的状态,并且在所述处于工作状态的任务主节点无法工作时,所述分布式协调器配置成挑选其它可用的任务主节点来继续服务,并由该可用的任务主节点调用故障恢复控制器来进行故障恢复。
[0013]在上述方法中,所述故障恢复控制器通过如下步骤来进行故障恢复:从所述分布式协调器获得最新的批处理元数据信息;以及如果某个任务处于正在执行的状态,则重新启动该任务。
[0014]在上述方法中,所述批处理集群系统中的执行子节点定时向所述任务主节点中的任务执行协调器报告健康状态,并且在所述执行子节点无法工作时,所述任务执行协调器将未处理完成的子任务连同运行信息发给其它可用的执行子节点。
【附图说明】
[0015]在参照附图阅读了本发明的【具体实施方式】以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是:这些附图仅仅用于配合【具体实施方式】说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。
[0016]图1是根据本申请的实施例、批处理集群系统的结构示意图;
图2是根据本申请的实施例、批处理运行时元数据的数据结构图;以及图3是根据本申请的实施例、批处理集群系统的具体执行流程图。
【具体实施方式】
[0017]下面介绍的是本发明的多个可能实施例中的一些,旨在提供对本发明的基本了解,并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。容易理解,根据本发明的技术方案,在不变更本发明的实质精神下,本领域的一般技术人员可以提出可相互替换的其它实现方式。因此,以下【具体实施方式】以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
[0018]众所周知,批处理应用一般运行时间较长,但往往又需要保证任务在一定的时间窗口内完成,因此批处理在运行过程出现异常后,需在故障点恢复继续运行,保证整个业务运行的连续性。
[0019]本申请的技术方案构建了一个新型批处理集群系统。它可以配置异常忽略机制、重试机制以及重新运行机制,保证批处理运行的高效性和业务的连续性。本申请的集群系统将集群中所有的节点分为两类:任务主节点,执行子节点。任务主节点通过领域特定语言定义批处理任务的主流程(批处理运行的步骤),通过分布式协调器监控和管理任务主节点,同时存放批处理系统运行时元数据信息,为任务主节点的故障恢复提供数据。执行子节点执行任务主节点分解的任务(即任务主节点对步骤的分解),任务主节点使用自定义的执行协调器来保证执行子节点任务分发的负载均衡,并且保证执行子节点运行时故障转移,从而最终保证整个集群任务执行的连续性和可靠性。
[0020]在本申请的批处理集群系统中,分布式协调器是高效和可靠的集群协同工作设备,它可以有效地解决集群中的单点故障问题,同时可以管理分布式环境中的数据。根据本申请的一些实施例,还使用自定义的分布式协调器存放集群主机中的批处理运行时关键元数据信息,为批处理的故障恢复提供保证。另外,领域特定语言具有很强的业务问题域描述功能,使用它来定义批处理的任务流程,可以提高批处理任务的可读性和维护性。
[0021]图1是根据本申请的实施例、批处理集群系统的结构示意图。在示出的批处理集群系统中包括分布式协调器、任务主节点以及执行子节点。
[0022]在一个实施例中,集群中所有的任务主节点都通过分布式协调器进行管理。如果集群中间的某一个主节点无法工作,分布式协调器会感知并重新进行选举,从集群剩余可用节点中重新选取一个主节点来继续失败节点的工作。在某一时刻,只有一个主节点处于工作状态,其他的主节点处于备用状态(standby )。
[0023]在一个实施例中,批处理运行过程中的所有元数据存放在分布式协调器中,可以被所有集群节点共享。批处理运行时元数据的数据结构定义如图2所示。
[0024]批处理运行时的元数据信息主要包括两部分,一个是任务的信息,另一个是任务中包含的步骤信息。元数据信息主要保存了批处理的运行中间状态。故障恢复需要使用它们。
[0025]在一个实施例中,任务主节点通过领域特定语言定义批处理任务的具体配置和运行流程(即定义流程的步骤)。如果批处理流程某步骤需要集群模式运行,则按照既定的任务和数据分解策略进行拆分,然后调用任务分解处理器来分发拆分的子任务。
[0026]在一个实施例中,在定义批处理的具体步骤时,该任务主节点可以配置具体的异常忽略机制和重试机制。例如,当批处理运行过程中遇到该类异常,可以跳过异常继续执行,或者重试执行,从而尽量保证批处理任务的连续性。
[0027]在一个实施例中,任务主节点在运行过程中会向分布式协调器写入批处理运行时元数据信息,记录job的运行及状态信息。
[0028]在一个实施例中,执行子节点作为批处理任务中分解的步骤的具体执行者,在运行过程中会向分布式协调器写入批处理运行时元数据信息,以记录分解的步骤运行及状态信息。优选地,执行子节点上面部署有心跳器,定时向任务执行协调器发送健康消息。
[0029]继续参考图1,任务主节点可进一步包括健康检查协调器、故障恢复控制器、任务分解处理器以及任务执行协调器。
[0030]在一个实施例中,健康检查协调器用于侦测任务主节点健康状况,确保批处理集群向外提供透明可用的批处理服务,批处理服务是通过虚拟IP地址向外提供服务。在某一时刻,虚拟IP绑定在一台可用的任务主节点上面。
[0031]在一个实施例中,当集群中的某台任务主节点无法正常工作,另外可用的任务主节点会代替无法工作的机器,在新的任务主节点工作之前,需要调用故障恢复控制器来进行故障恢复。这时,故障恢复控制器根据存储的运行时元数据进行批处理运行上下文的恢复。
[0032]在一个实施例中,任务分解处理器用于根据预先配置的任务和数据分解策略对任务或数据进行拆分。拆分后的数据通过虚拟文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1