流式计算系统中计算节点的故障处理技术方案

技术编号:15690726 阅读:117 留言:0更新日期:2017-06-24 03:21
本发明专利技术的目的是提供一种用于流式计算系统中的故障处理的方法、装置、计算节点和计算机程序产品。其中,在一个计算节点,记录来自上游计算节点的各原始数据的到达顺序;将所述各原始数据按照预定的周期进行持久化操作;当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。与现有技术相比,本发明专利技术提供了一种在框架层实现的流式计算输出结果不重不丢的容错机制,可应对各种软硬件故障,保证输出结果的高准确性。

Fault handling of computing nodes in a streaming computing system

The object of the present invention is to provide a method, an apparatus, a computing node, and a computer program product for troubleshooting in a streaming computing system. Among them, the compute nodes in a, the original data records from the upstream of the compute nodes of the arrival order; the original data according to a predetermined period of persistent operation; when the failure and recovery after the restart, in accordance with the memory of the data to be calculated from the persistence operation of the original data and / or the upstream nodes arrival order records, and the recovery of data to be calculated and calculated according to the playback before arrival order; each calculated results according to the data before the failure of a persistent operating cycle and the number of results to offset according to the encoding and sent to the next node. Compared with the prior art, the invention provides a fault-tolerant mechanism for realizing the flow calculation in the frame layer without losing weight without output, and can cope with various hardware and software faults and guarantee the high accuracy of the output results.

【技术实现步骤摘要】
流式计算系统中计算节点的故障处理
本专利技术涉及流式计算
,尤其涉及一种用于流式计算系统中的故障处理技术。
技术介绍
目前而言,常见流式计算系统提供计算结果到传输系统三种可选语义:1)至多一次(atmostonce):保证计算结果在计算过程中遇到节点故障后,计算恢复前后结算结果至多发送到传输系统一次。2)至少一次(atleastonce):保证计算结果在计算过程中遇到节点故障后,计算恢复前后结算结果至少发送到传输系统一次。例如Strom。3)受限的严格一次(exactlyonce):依赖计算结果发布的存储支持update幂等功能,且update依据的key一般由业务方指定,实现计算结果直接记入存储,不再支持结果继续进行流式计算。例如Flink使用Cassandra作为存储。至多一次(atmostonce)或者至少一次(atleastonce)只是严格一次(exactlyonce)某一个方面的实现保证。用户使用中,只能选择不重或者不丢来折中业务计算需求。受限的严格一次(exactlyonce)语义支持计算结果发布update幂等存储,但是不支持后续计算结果继续流式计算分析等复杂app级联等业务场景。而在很多领域,例如金融、计费、反作弊、广告等,业务场景天然需求数据计算至传输都保证不重不丢,以满足精准的数据完整性需求,同时有复杂的业务计算场景,计算结果简单存入update幂等存储不能满足需求。为此,用户需要在业务层增加额外复杂的数据重放及校验去重逻辑来保证计算数据结果的不重不丢,但是此方案对用户要求很高,极易出现数据不一致等问题,增大了用户的开发成本。而且,此种方案用户间无法复用,无法形成流式计算框架层通用逻辑。
技术实现思路
本专利技术的目的是提供一种用于流式计算系统中的故障处理的方法、装置、计算节点和计算机程序产品。根据本专利技术的一个方面,提供了一种用于流式计算系统中的故障处理方法,其中,在一个计算节点,该方法包括以下步骤:-记录来自上游计算节点的各原始数据的到达顺序;-将所述各原始数据按照预定的周期进行持久化操作;-当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;-将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。根据本专利技术的一个方面,还提供了一种用于流式计算系统中的故障处理装置,其中,故障处理装置被布置于所述流式计算系统中的一个计算节点中,该故障处理装置包括:用于记录来自上游计算节点的各原始数据的到达顺序的装置;用于将所述各原始数据按照预定的周期进行持久化操作的装置;用于当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算的装置;用于将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点的装置。根据本专利技术的一个方面,还提供了一种流式计算系统中的计算节点,其中,该计算节点包括上述如根据本专利技术的一个方面所提供的一种用于流式计算系统中的故障处理装置。根据本专利技术的一个方面,还提供了一种流式计算系统中的计算节点,其中,该计算节点包括存储器和处理器,其中,所述存储器中存储有计算机程序指令,当所述处理器运行所述计算机程序指令时,上述如根据本专利技术的一个方面所提供的一种用于流式计算系统中的故障处理方法被执行。根据本专利技术的一个方面,还提供了一种计算机程序产品,所述计算机程序产品可以在流式计算系统中的计算节点中运行,当所述计算机程序产品被运行时,上述如根据本专利技术的一个方面所提供的一种用于流式计算系统中的故障处理方法被执行。与现有技术相比,本专利技术提供了一种在框架层实现的流式计算输出结果不重不丢的容错机制,通过流式计算系统的定期checkpoint机制、下游节点按发布偏移量去重以及“数据有序重放”机制,可应对各种软硬件故障,保证输出结果的高准确性。本专利技术可广泛应用于对流式计算有严格不重不丢语义的领域,例如广告、金融、反作弊等。在流式计算框架完成的实现,对用户透明,即用户通过使用本专利技术,无需额外开发或操作即可保证计算结果的高准确性。本专利技术无需用户在业务层代码增加额外复杂数据重放或校验逻辑即可保证计算数据结果的exactlyonce语义,降低了用户程序开发的复杂度,提高数据的准确性,拓宽了流式计算的应用场景。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1示出根据本专利技术一个实施例的一种用于流式计算系统的故障处理方法的流程图;图2示出根据本专利技术一个实施例的一种用于流式计算系统的故障处理装置的示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的程序指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑(PC)、笔记本电脑、平板电脑、智能手机等。所述计算机设备例如包括用户设备与网络设备。其中,所述用户设备包括但不限于个人电脑(PC)、笔记本电脑、移动终端等,所述移动终端包括但不限于智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本专利技术,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本专利技术。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本专利技术,也应包含在本专利技术保护范围以内,并以引用方式包含于此。本文后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本专利技术的示例性实施例的目的。但是本专利技术可以通过许多替换形式来具体实现,并且不应当被解释成仅本文档来自技高网
...
流式计算系统中计算节点的故障处理

【技术保护点】
一种用于流式计算系统中的故障处理方法,其中,在一个计算节点,该方法包括以下步骤:‑记录来自上游计算节点的各原始数据的到达顺序;‑将所述各原始数据按照预定的周期进行持久化操作;‑当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;‑将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。

【技术特征摘要】
1.一种用于流式计算系统中的故障处理方法,其中,在一个计算节点,该方法包括以下步骤:-记录来自上游计算节点的各原始数据的到达顺序;-将所述各原始数据按照预定的周期进行持久化操作;-当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;-将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。2.根据权利要求1所述的方法,其中,当发生故障而重启后,首先获取上一持久化操作周期的原始数据,并比较所获取的原始数据的到达顺序与所记录的所述各原始数据的到达顺序,以确定是否尚有丢失数据,如是,从所述丢失数据所来自的上游计算节点获取所述丢失数据,从而恢复故障前内存中的待计算数据。3.根据权利要求1所述的方法,其中,根据故障前上一持久化操作周期的结果数据的偏移量进度信息,确定重启后第一条计算完毕的结果数据的编码偏移量。4.根据权利要求1至3中任一项所述的方法,其中,所述各原始数据的持久化操作通过checkpoint机制来按照预定的周期执行。5.根据权利要求4所述的方法,其中,所述各原始数据通过checkpoint机制被存储于外部的分布式存储系统,从而实现持久化操作。6.根据权利要求4所述的方法,其中,当发生故障而重启后,首先从checkpoint点恢复上一周期的原始数据,并比较所获取的原始数据的到达顺序与所记录的所述各原始数据的到达顺序,以确定是否尚有丢失数据,如是,从所述丢失数据所来自的上游计算节点获取所述丢失数据,从而恢复故障前内存中的待计算数据。7.根据权利要求4所述的方法,其中,当发生故障而重启后,从checkpoint点恢复上一周期的结果数据的偏移量进度信息。8.根据权利要求1所述的方法,其中,所述下一节点包括当前计算节点的下级计算节点或外部传输系统。9.一种用于流式计算系统中的故障处理装置,其中,故障处理装置被布置于所述流式计算系统中的一个计算节点中,该故障处理装置包括:用于记录来自上游计算节点的各原始数据的到达顺序的装置;用于将所述各原始数据按照预定的周期进行持久化操作的装置;用于当发生故障而重启后,按照所记录的到达顺序...

【专利技术属性】
技术研发人员:石然程怡张建伟高伟康
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1