实时流处理系统的最主要的特点就是数据是持续不断地到来的,这样的数据源通常都是无边界的。对于这种数据持续不断地,实时流处理系统必须被持续地部署到集群中去,并且持续地占用集群资源。但是在分布式环境下,Failure是随时都会发送的。比如说集群机器宕机,网络拥塞,数据丢失每时每刻都可能发生,并且这种Failure是不可避免的。实时流处理系统对于这种Failure必须采取一定的措施进行Failure恢复。

1.实时流处理系统容错机制

现有的实时流处理系统对于错误恢复主要都采用以下三种做法:

1.1 Checkpoint-based recovery

在此策略中,系统中Operator会将其快照定期检入到可靠的永久性存储中。 当Operator所在的任务失败时,它将加载最近的检查点并恢复执行。 检查点的直接实现在正常执行中引入了头部,这对于维持较大内部状态的顶点并不理想。 高级检查点技术通常需要特定的数据结构,这会引入复杂性和开销。

1.2 Replay-based recovery

很多时候,由于使用窗口操作符,流式计算要么是无状态的,要么是短期记忆;也就是说,其当前的内部状态仅取决于某个持续时间(例如最后5分钟)的最近窗口中的事件。在这些情况下,一个顶点可以逃脱并不明确的检查点状态,而是重新加载事件的窗口以从最初的状态重建状态。虽然这是一种特殊情况,但通常情况下很有用处。利用这个属性,实时流处理系统可以简单地跟踪输入/输出流的序列号,而不必存储顶点的局部状态。这种策略可能需要在恢复过程中重新加载可能较大的输入事件窗口,但它避免了在正常情况下检查点的前期成本。这个策略对垃圾回收具有微妙的含义。Operator点必须在输入流中的早期事件中恢复,而不是在快照中加载状态。

当Failure发生后,实时流处理系统可以通过回放之前保存的事件来生成之前的状态,实时流处理系统通过保存输入/输出流的序列号,而不必存储顶点的局部状态。当Failure发生后,系统从之前保存的输入/输出流的序列号开始回放数据,最终达到系统Failure之前的状态。

1.3 Replication-based recovery

最后一种策略是同时运行同一个Operator的多个实例:它们可以连接到相同的输入流和输出流。 通过复制,Operator可以让实例轮流使用检查点,而不会影响读取器所观察到的延迟,因为其他实例正常运行。 当一个实例失败时,它也可以直接从另一个实例获取当前快照,以加速恢复。 所有这些好处都是以多个实例同时运行为代价的。

2. 实时流处理系统语义分析

2.1 State Semantics

实时流处理系统每个Operator保存着各自的状态State。这个状态有着各自的语义规则,其中包括Exactly Once、At least Once、At Most Once三个语义。Exactly Once 表示状态中累加的数据只累加一次,At least Once 表示状态中累加的数据累加至少一次,At Most Once 表示状态中累加的数据累加最多一次。

2.2 Output Semantics

实时流处理系统每个Operator都输出各自的数据,这个输出的数据都有各自的语义规则,其中包括Exactly Once、At least Once、At Most Once三个语义。Exactly Once 表示输出的数据只输出一次,At least Once 表示输出的数据至少输出一次,At Most Once 表示输出的数据中输出的数据最多输出一次。

实时流处理系统容错机制(一):综述相关推荐

  1. 实时流处理系统容错机制(二):Apache Flink 基于State的异步容错机制

    1. Introduce Apache Flink 提供了可以恢复数据流应用到一致状态的容错机制.确保在发生故障时,程序的每条记录只会作用于状态一次(exactly-once),当然也可以降级为至少一 ...

  2. Apache Storm 实时流处理系统ACK机制以及源码分析

    1.ACK机制简介 Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理.完全处理的意思是该MessageId绑定的源Tuple以及由该源Tupl ...

  3. [ATC 17] StreamBox: 面向多核机器上的针对Records的无序到达的实时流处理系统

    今天要讲的文章ATC 2017年的一篇文章,StreamBox: Modern Stream Processing on a Multicore Machine.本文主要想解决的问题就是:高速大量的实 ...

  4. Twitter Heron 实时流处理系统简介

    Twitter Heron是Twitter公司开源的一个实时的.容错的.分布式的流数据处理系统.Heron是Apache Storm的直接继承者.它继承了Apache Storm的实时性.容错.低延迟 ...

  5. Apache Storm 实时流处理系统通信机制源码分析

    我们今天就来仔细研究一下Apache Storm 2.0.0-SNAPSHOT的通信机制.下面我将从大致思想以及源码分析,然后我们细致分析实时流处理系统中源码通信机制研究. 1. 简介 Worker间 ...

  6. 一周一论文(翻译)——[VLDB 18] Chi:分布式流处理系统下可扩展的、可编程的控制计划模块

    Abstract 流处理工作负载和现代共享集群环境表现出高度的可变性和不可预测性. 结合大量参数空间和各种用户SLO,这使得现代流处理系统非常难以静态配置和调整. 为了解决这些问题,在本文中,我们研究 ...

  7. Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.Spark Streaming简介 1.1 概述 Spark Streaming 是Sp ...

  8. .Spark Streaming(上)--实时流计算Spark Streaming原理介

    Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍 http://www.cnblogs.com/shishanyuan/p/474 ...

  9. 大数据准实时流式系统设计(一)——基于大数据框架设计

    前段时间负责了公司一个新的项目,项目不属于直接面向用户的线上实时响应系统,要求做到尽快毫秒级或者秒级响应的准实时系统.结合以前学习的一些大数据理论方面和参与的准实时系统方面的经验,对准实时系统架构设计 ...

最新文章

  1. python毒酒检测_检测OpenSSL漏洞的脚本
  2. Linux 大规模请求服务器连接数相关设置
  3. 【直播预告 | 今天10:30】多媒体技术 PI 第一期:OSS圆桌
  4. ORA-12170:TNS:连接超时
  5. [渝粤教育] 中国地质大学 电力系统保护原理 复习题 (2)
  6. 网站重新解析换服务器,更换解析服务器地址
  7. 华科开源多目标跟踪(MOT)实时新SOTA:FairMOT
  8. Java 8 API Stream让List操作更便捷
  9. [paper reading] CornerNet
  10. 组织架构适配下的敏捷开发
  11. php黑名单,php IP黑名单
  12. Excel生成满足正态分布的随机数
  13. html 5 游戏 脚本,HTML 5开发RPG游戏之四(游戏脚本化)(2)
  14. 完美识别率 迅捷PDF转换成Word转换器发布
  15. 白化深度学习与tensorflow——强化学习
  16. 磁共振计算机都是量子技术吗,IBM利用磁共振对单个原子成像,未来用于量子计算机...
  17. jQuery使用ajaxSubmit()提交表单以及AjaxSubmit的一些用法
  18. CDH5.15.0+spark1.6.0+hive1.1集群与zeppelin0.8.1+spark-notebook打通踩坑总结
  19. 差分信号经运放后转为单端输出供单片机采集原理图
  20. C语言课设之电话查询系统。

热门文章

  1. 基于Policy Gradient实现CartPole
  2. 海量路由表能够使用HASH表存储吗-HASH查找和TRIE树查找
  3. C#调用SCL2008 动态库SCL_API_cdecl.dll or SCL_API_Stdcall.dll,提示找不到指定模块
  4. androidEditTextinputType及android:imeOptions=”actionDone”(转)
  5. 让你的AIR程序脱离AIR环境运行
  6. AjaxControlTookit中的AutoCompleteExtender位置错位问题 ListSearchExtender不支持中文的问题...
  7. *27.硬实时和软实时
  8. 世界人工智能大会圆桌实录:AI与产业融合创新的挑战与机遇
  9. 计算机视觉,图像处理,图像分析,机器人视觉和机器视觉是彼此紧密关联的学科
  10. 信捷伺服刚性调整_伺服系统增益协调的作用及举例说明,文末有伺服产品调试学习PPT!...