文档章节

Storm 【最新版 0.9.3】-官方翻译 1: Fault-tolerance

止静
 止静
发布于 2014/10/31 09:23
字数 920
阅读 164
收藏 1

This page explains the design details of Storm that make it a fault-tolerant system.

在本页,我们将了解使Storm成为一个容错性系统的设计细节

What happens when a worker dies?

如果worker死掉以后会发生什么?


When a worker dies, the supervisor will restart it. If it continuously fails on startup and is unable 

每当一个Worker死掉了,那么supervisor将会重启它,如果是在启动的过程之中一直失败,那么它就会丢失掉

to heartbeat to Nimbus, Nimbus will reassign the worker to another machine.

河Numbus的连接,Nimbus将会重新分配一个Worker给其他的机器


What happens when a node dies?

  当一个节点挂掉的时候

The tasks assigned to that machine will time-out and Nimbus will reassign those tasks to other machines.

 一旦一个节点挂掉的时候,分配到这个机器之上的的task任务就会出现超时,并且Numbus会重新分配这些人物到其他的机器


What happens when Nimbus or Supervisor daemons die?

当Nimbus 或者Supervisor的后台线程会挂掉


Numbus和Supervisor的后台线程被设计于 fail-fast机制,以及无状态机制(实时上,我们的状态是保持在Zookeeper之中的),Numbus 和Supervisor的daemons 一定要运通过一定的工具,好比  daemontools 或则是 monit,于是,如果Nimbus 或则Supervisor daemons死掉了,那么就会像没发生一样的去重启。

The Nimbus and Supervisor daemons are designed to be fail-fast (process self-destructs whenever any unexpected situation is encountered) and stateless (all state is kept in Zookeeper or on disk). As described in Setting up a Storm cluster, the Nimbus and Supervisor daemons must be run under supervision using a tool like daemontools or monit. So if the Nimbus or Supervisor daemons die, they restart like nothing happened.


Most notably, no worker processes are affected by the death of Nimbus or the Supervisors. This is in contrast to Hadoop, where if the JobTracker dies, all the running jobs are lost.

更加显著的来说,通常而言,Worker的处理过程不会被Nimbus和Supervisor的死亡所影响。这一点和Hadoop系统是不一眼过得,要知道,一旦Hadoop之中的JobTracker死掉了,所有运行的作业就丢失。


Is Nimbus a single point of failure?


Nimbus是否也就是一个单带你的故障 

如果你的Numbus节点Los了,那么这Worker就会继续这些处理流程,更进一步来讲,Supervisor将继续的重启这些Workers

一旦Workers会死掉,然而,没有了Nimbus,一旦Worker工作之中有需要用到其他的计算硬件,Worker不能够被分配到其他机器。

If you lose the Nimbus node, the workers will still continue to function. Additionally, supervisors will continue to restart workers if they die. However, without Nimbus, workers won’t be reassigned to other machines when necessary (like if you lose a worker machine).


于是乎,真正的正确的答案是,Numbus本身是一系列的 SPOF(SPof 是我们的  single point of failure的缩写),实际上来讲,在Storm之中。这并不是一个相当的大的问题,在将来会有使Nimbus变得可用的可能。


So the answer is that Nimbus is “sort of” a SPOF. In practice, it’s not a big deal since nothing catastrophic happens when the Nimbus daemon dies. There are plans to make Nimbus highly available in the future.

How does Storm guarantee data processing?


Storm 对于消息的处理有保证性的机制,不管是在机器亦或者是消息丢失的情况之下。如果感兴趣的朋友,可以直接参考官方的文档,《Guaranteeing Message 》


Storm provides mechanisms to guarantee data processing even if nodes die or messages are lost. See Guaranteeing message processing for the details.




对于另外的机制,请参考本ID的另外一篇博文

 JDK【Java的一些特性】- 系列 1:  fail-fast机制    

 






© 著作权归作者所有

共有 人打赏支持
止静
粉丝 120
博文 134
码字总数 125762
作品 0
东城
技术主管
Storm入门 第三章 Storm安装部署步骤

本文以Twitter Storm官方Wiki为基础,详细描述如何快速搭建一个Storm集群,其中,项目实践中遇到的问题及经验总结,在相应章节以“注意事项”的形式给出。 3.1 Storm集群组件 Storm集群中包含...

坏坏一笑
2014/12/03
0
0
windows 安装 storm 及 eclipse 调试 TopN 实例

一:安装JDK 下载地址:地址一 地址二 配置Java环境变量 JAVAHOME、Path、CLASSPATH三个值分别为(按照自己安装状况设置,此处供参考): D:javajdk1.8 %JAVAHOME%/bin;%JAVAHOME%/jre/bin ....

大数据之路
2012/06/08
0
1
探秘Hadoop生态13:初探Storm和入门实例

这位大侠,这是我的公众号:程序员江湖。 分享程序员面试与技术的那些事。 干货满满,关注就送。 Storm:最火的流式处理框架 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获...

你的猫大哥
2017/03/08
0
0
Kafka实战-Storm Cluster

1.概述   在《Kafka实战-实时日志统计流程》一文中,谈到了Storm的相关问题,在完成实时日志统计时,我们需要用到Storm去消费Kafka Cluster中的数据,所以,这里我单独给大家分享一篇Sto...

smartloli
2015/06/18
0
0
storm 原理简介及单机版安装指南(转)

本文翻译自: https://github.com/nathanmarz/storm/wiki/Tutorial Storm是一个分布式的、高容错的实时计算系统。 Storm对于实时计算的的意义相当于Hadoop对于批处理的意义。Hadoop为我们提供...

Jacos
2014/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用碎片化时间Get Linux系统

起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫。我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选择,迷茫工作或者生...

linuxprobe16
今天
5
0
OSChina 周日乱弹 —— 恨不得给你买张飞机挂票

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席灵魂师:分享张希/曹方的单曲《认真地老去》 来不及认真的年轻过,就认真的老去! 《认真地老去》- 张希/曹方 手机党少年们想听...

小小编辑
今天
281
6
如何实现靠谱的分布式锁?

分布式锁,是用来控制分布式系统中互斥访问共享资源的一种手段,从而避免并行导致的结果不可控。基本的实现原理和单进程锁是一致的,通过一个共享标识来确定唯一性,对共享标识进行修改时能够...

郑加威
今天
3
0
Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
5
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部