一、简介

  如果在消息处理过程中出了一些异常,Storm 会重新安排这个出问题的 topology。Storm 保证一个 topology 永远运行(除非你显式杀掉这个 topology) 。

  当然,如果 topology 中存储了中间状态,那么当 topology 重新被 Storm 启动的时候,需要应用自己处理中间状态的恢复

二、集群的各级容错

1. 任务级失败

  1. bolt 任务失败。此时,acker 中所有与此 bolt 任务关联的消息都会因为超时而失败,对应 spout 的 fail 方法将被调用。
  2. acker 任务失败。如果 acker 任务本身失败了,它在失败之前持有的所有消息都将会因为超时而失败。Spout 的 fail 方法将被调用。
  3. Spout 任务失败。这种情况下,Spout 任务对接的外部设备(如MQ)负责消息的完整性。例如当客户端异常的情况下,kestrel队列会将处于 pending 状态的所有的消息重新放回到队列中。其他的 spout 数据源,可能需要我们自行维护这个消息的完整性

2. 任务槽(slot)故障

  1. worker 失败。每个 worker 中包含数个 bolt(或 spout)任务 。supervisor 负责监控这些任务,当 worker 失败后,supervisor会尝试在本机重启它。
  2. supervisor 失败。supervisor 是无状态的,因此 supervisor 的失败不会影响当前正在运行的任务,只要及时的将它重新启动即可。supervisor 不是自举的,需要外部监控来及时重启。
  3. nimbus 失败。nimbus 是无状态的,因此 nimbus 的失败不会影响当前正在运行的任务(nimbus 失败时,无法提交新的任务) ,只要及时的将它重新启动即可。nimbus 不是自举的 , 需要外部监控来及时重启

3. 集群节点(机器)故障  

  1. storm 集群中的节点故障。此时 nimbus 会将此机器上所有正在运行的任务转移到其他可用的机器上运行。
  2. zookeeper 集群中的节点故障。 zookeeper 保证少于半数的机器宕机仍可正常运行,及时修复故障机器即可

Storm的容错性的更多相关文章

  1. storm学习笔记(一)

    1.storm介绍         storm是一种用于事件流处理的分布式计算框架,它是有BackType公司开发的一个项目,于2014年9月加入了Apahche孵化器计划并成为其旗下的顶级项目之一. ...

  2. Storm元数据交互详解

    一.Nimbus Nimbus既需要在Zookeeper中创建元数据,也需要从Zookeeper中获取元数据. 如上图箭头1所示: 1.对于路径a,Nimbus只会创建路径,不会设置数据,数据是稍后由 ...

  3. SparkStreaming和storm的区别

    这是2种不同的架构. 他们的区别是SparkStreaming的吞吐量非常高,秒级准实时处理,Storm是容错性非常高,毫秒级实时处理 解释:sparkStreaming是一次处理某个间隔的数据,比如 ...

  4. Fault Tolerance —— Storm的故障容错性

     ——本文讲解了Storm故障容忍性(Fault-Tolerance)的设计细节:当Worker.节点.Nimbus或者Supervisor出现故障时是如何实现故障容忍性,以及Nimbus是否存在单点 ...

  5. Storm介绍及与Spark Streaming对比

    Storm介绍 Storm是由Twitter开源的分布式.高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求.Storm常用于在实时分析.在线机器学 ...

  6. 理解storm的ACKER机制原理

    一.简介:       storm中有一个很重要的特性: 保证发出的每个tuple都会被完整处理.一个tuple被完全处理的意思是: 这个tuple以及由这个tuple所产生的所有的子tuple都被成 ...

  7. 《storm实战-构建大数据实时计算读书笔记》

    自己的思考: 1.接收任务到任务的分发和协调   nimbus.supervisor.zookeeper 2.高容错性                            各个组件都是无状态的,状态 ...

  8. storm学习

    一 storm 相关术语 . Nimbus storm 集群主节点,负责资源分配和任务调度.(相当于namenode) . supervisor storm集群工作节点,接受Nimbu分配任务,管理w ...

  9. 【大数据】Summingbird(Storm + Hadoop)的demo运行

    一.前言 为了运行summingbird demo,笔者走了很多的弯路,并且在国内基本上是查阅不到任何的资料,耗时很久才搞定了demo的运行.真的是一把辛酸泪,有兴趣想要研究summingbird的园 ...

随机推荐

  1. Codeforces 322B

    B. Ciel and Flowers time limit per test 1 second memory limit per test 256 megabytes input standard ...

  2. MariaDB Galera Cluster集群

    一.MariaDB Galera Cluster概要: 1.简述: MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步 ...

  3. zend studio插件

    1.安装使用Aptana插件(html,css,js代码提示功能) 安装步骤: 1).zend studio->Help->Install New Software->work wi ...

  4. Wildcard Matching

    Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...

  5. Static vs Dynamic Scope

    转自:http://hoolihan.net/blog-tim/2009/02/17/static-vs-dynamic-scope/ // start pseudo-code var y = &qu ...

  6. poj 1704

    Georgia and Bob Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7233   Accepted: 2173 D ...

  7. POJ 2081

    #include <iostream> #define MAXN 500005 using namespace std; //unsigned _m[MAXN]; ]; int main( ...

  8. iScroll.js 用法参考

    本文原文链接:http://www.cnblogs.com/duanhuajian/archive/2013/04/08/3008323.html 概要 iScroll 4 这个版本完全重写了iScr ...

  9. JS加载时间线

    1.创建Document对象,开始解析web页面.解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中.这个阶段document.readyState = 'loading' ...

  10. badboy 之 查看回放结果

    在运行脚本时,Badboy提供了Summary功能方便我们监控回放结果状态,如下Summary view: 以下表格对运行情况的各个维度进行解释: 统计点 描述 Played 运行或回放脚本的次数 S ...