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幂等存储不能满足需求。为此,用户需要在业务层增加额外复杂的数据重放及校验去重逻辑来保证计算数据结果的不重不丢,但是此方案对用户要求很高,极易出现数据不一致等问题,增大了用户的开发成本。而 ...
【技术保护点】
一种用于流式计算系统中的故障处理方法,其中,在一个计算节点,该方法包括以下步骤:‑记录来自上游计算节点的各原始数据的到达顺序;‑将所述各原始数据按照预定的周期进行持久化操作;‑当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;‑将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。
【技术特征摘要】
1.一种用于流式计算系统中的故障处理方法,其中,在一个计算节点,该方法包括以下步骤:-记录来自上游计算节点的各原始数据的到达顺序;-将所述各原始数据按照预定的周期进行持久化操作;-当发生故障而重启后,按照所记录的到达顺序从经持久化操作的原始数据和/或所述上游计算节点恢复内存中的待计算数据,并将所恢复的待计算数据按照其之前的到达顺序进行重放和计算;-将每条计算完毕的结果数据按照故障前上一持久化操作周期的结果数据的偏移量继续编码并发送至下一节点。2.根据权利要求1所述的方法,其中,当发生故障而重启后,首先获取上一持久化操作周期的原始数据,并比较所获取的原始数据的到达顺序与所记录的所述各原始数据的到达顺序,以确定是否尚有丢失数据,如是,从所述丢失数据所来自的上游计算节点获取所述丢失数据,从而恢复故障前内存中的待计算数据。3.根据权利要求1所述的方法,其中,根据故障前上一持久化操作周期的结果数据的偏移量进度信息,确定重启后第一条计算完毕的结果数据的编码偏移量。4.根据权利要求1至3中任一项所述的方法,其中,所述各原始数据的持久化操作通过checkpoint机制来按照预定的周期执行。5.根据权利要求4所述的方法,其中,所述各原始数据通过checkpoint机制被存储于外部的分布式存储系统,从而实现持久化操作。6.根据权利要求4所述的方法,其中,当发生故障而重启后,首先从checkpoint点恢复上一周期的原始数据,并比较所获取的原始数据的到达顺序与所记录的所述各原始数据的到达顺序,以确定是否尚有丢失数据,如是,从所述丢失数据所来自的上游计算节点获取所述丢失数据,从而恢复故障前内存中的待计算数据。7.根据权利要求4所述的方法,其中,当发生故障而重启后,从checkpoint点恢复上一周期的结果数据的偏移量进度信息。8.根据权利要求1所述的方法,其中,所述下一节点包括当前计算节点的下级计算节点或外部传输系统。9.一种用于流式计算系统中的故障处理装置,其中,故障处理装置被布置于所述流式计算系统中的一个计算节点中,该故障处理装置包括:用于记录来自上游计算节点的各原始数据的到达顺序的装置;用于将所述各原始数据按照预定的周期进行持久化操作的装置;用于当发生故障而重启后,按照所记录的到达顺序...
【专利技术属性】
技术研发人员:石然,程怡,张建伟,高伟康,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。