一、简介

  如果在消息处理过程中出了一些异常,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. SQL TRY CATCH

    begin try select 1/0end trybegin catch select error_number() as 'number', error_line() as 'line', er ...

  2. json 处理

    //String sssssString = "{"response":{"data":[{"address":"南京市 ...

  3. Sqli-labs less 53

    Less-53 和less51是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sqli-labs/Les ...

  4. 使用tomcat7创建异步servlet

    该篇文章翻译自:http://developerlife.com/tutorials/?p=1437 一.简介 Servlet API 3.0 之前,需要使用类似Comet的方式来实现创建异步的Ser ...

  5. ZOJ3550 Big Keng(三分)

    题意:给定一个立体的图形,上面是圆柱,下面是圆台,圆柱的底面半径和圆台的上半径相等,然后体积的V时,问这个图形的表面积最小可以是多少.(不算上表面).一开始拿到题以为可以YY出一个结果,就认为它是圆锥 ...

  6. hdu 4850 Wow! Such String!(字符串处理,yy)

    题目 参考了博客http://blog.csdn.net/u013368721/article/details/37575165 //用visit[26][26][26][26]来判断新家新区的子母河 ...

  7. [STL]deque和stack、queue

    怎么说呢,deque是一种双向开口的连续线性空间,至少逻辑上看上去是这样.然而事实上却没有那么简单,准确来说deque其实是一种分段连续空间,因此其实现以及各种操作比vector复杂的多. 一.deq ...

  8. css系列-段落首字符下沉、缩进及特殊显示

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. POJ 1523 SPF(求割点)

    题目链接 题意 : 找出图中所有的割点,然后输出删掉他们之后还剩多少个连通分量. 思路 : v与u邻接,要么v是u的孩子,要么u是v的祖先,(u,v)构成一条回边. //poj1523 #includ ...

  10. linux下关于gz和bz2压缩格式的常用操作技巧

    .gz和.bz2都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件..bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间. 也就是说同一个文件,压缩 ...