Storm入门教程

1. Storm基础

Storm

Storm主要特点

Storm基本概念

Storm调度器

Storm配置

Guaranteeing Message Processing(消息处理保障机制)

Daemon Fault Tolerance(守护线程容错机制)

当worker死掉时会发生什么?

当node死掉时会发生什么?

当Nimbus或者Supervisor daemons死掉时会发生什么?

Nimbus是否会出现单独失败的状况?

Storm怎样保证数据处理?

理解Storm拓扑的并行

Tutorial

Local模式

在生产环境中运行Topologies



Daemon Fault Tolerance(守护线程容错机制)

Storm有不同的守护进程。Nimbus负责调度wokers,supervisors负责创建和销毁workers。这些信息可以在日志中或Storm UI中看到。

当worker死掉时会发生什么?

当worker死掉时,supervisor将重启它。如果worker启动总是失败且不能正常发送心跳消息给Nimbus,那Nimbus就会重新调度worker。

当node死掉时会发生什么?

如果节点发生故障,导致分配到某个节点的所有tasks执行都会超时,那Nimbus会将这些tasks重新分配到另外的节点上。

当Nimbus或者Supervisor daemons死掉时会发生什么?

Nimbus和Supervisor daemons都是设计为快速失败的(任何意外状况发生时都可能导致进程自身崩溃)以及无状态的(所有的状态都是保存在Zookeeper或者Disk上)。就像Storm集群的配置描述的一样, Nimbus和Supervisor daemons必须运行在监控之下,这个监控是使用诸如daemontools或者monit等工具实现的。因此,如果Nimbus或者Supervisor死掉的话,它们会像什么都没发生一样再次重启。

最需要指出的是, 没有worker进程会受到Nimbus或者Supervisors死掉的影响。而相比之下,对Hadoop来说, 如果JobTracker死掉的话, 所有运行的jobs信息都会丢失。

Nimbus是否会出现单独失败的状况?

如果Nimbus 节点死掉的话, worker依然会运行下去。另外, supervisors在它们死掉时依然会重启。尽管如此,没有Nimbus,worker 在需要时(比如worker所在机器宕机时)不会重新分配到其他机器上。

Storm的Nimbus从1.0.0开始已实现HA机制。详情看Nimbus HA Design

Storm怎样保证数据处理?

Storm提供保证数据处理的机制,即使节点死掉或者丢失消息时也可以保证。更多细节可以查看保证消息处理机制 。

【原】Storm 守护线程容错机制的更多相关文章

  1. 【Storm篇】--Storm 容错机制

    一.前述 Storm容错机制相比其他的大数据组件做的非常不错. 二.具体原因 结合Storm集群架构图: 我们的程序提交流程如下:   其中各个组件的作用如下: Nimbus资源调度任务分配接收jar ...

  2. Storm学习笔记 - 消息容错机制

    Storm学习笔记 - 消息容错机制 文章来自「随笔」 http://jsynk.cn/blog/articles/153.html 1. Storm消息容错机制概念 一个提供了可靠的处理机制的spo ...

  3. Storm消息容错机制(ack-fail机制)

    storm消息容错机制(ack-fail) 1.介绍 在storm中,可靠的信息处理机制是从spout开始的. 一个提供了可靠的处理机制的spout需要记录他发射出去的tuple,当下游bolt处理t ...

  4. 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发

    子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...

  5. 从头认识java-18.2 主要的线程机制(5)-守护线程与非守护线程

    这一章节我们来讨论一下守护线程与非守护线程. 1.什么是守护线程?什么是非守护线程? 非守护线程:Java虚拟机在它全部非守护线程已经离开后自己主动离开. 守护线程:守护线程则是用来服务用户线程的,假 ...

  6. java线程 - 多线程 - 守护线程

    1.多线程执行者/处理类 都是Runnable的实现类(如自定义类实现Runnable 或 java原生的Thread.FutureTask),但最后都必须封装成Thread线程类由Thread.st ...

  7. java的守护线程与非守护线程

    最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...

  8. Java中的守护线程和非守护线程(转载)

    <什么是守护线程,什么是非守护线程> Java有两种Thread:"守护线程Daemon"(守护线程)与"用户线程User"(非守护线程). 用户线 ...

  9. java------守护线程与非守护线程

    最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...

随机推荐

  1. springMVC上传图片

    http://blog.csdn.net/cheung1021/article/details/7084673/ http://toutiao.com/a6293854906445021442/ 工程 ...

  2. [转载]线程间操作无效: 从不是创建控件“ListBox1”的线程访问它

    解决方法有两种: 1.Control.CheckForIllegalCrossThreadCalls = false 2.用委托解决线程安全问题

  3. Form表单学习网站

    HTML表单 -- form标签 -- 与浏览者交互:http://www.dreamdu.com/xhtml/tag_form/

  4. Exploring the 7 Different Types of Data Stories

    Exploring the 7 Different Types of Data Stories What makes a story truly data-driven? For one, the n ...

  5. OD之常用命令

    一:od断点注释保存的问题,由于od只有在正常退出的情况下才会保存分析代码时留下的注释,而很多时候为了在退出od时不让目标程序退出使用了剥离进程,这样就会导致这次操作所有的注释都没有保存,第二次重新载 ...

  6. 可编辑的select框的实现(实用版)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>  <HEA ...

  7. SQL四种语言:DDL,DML,DCL,TCL

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  8. 6大排序算法,c#实现

    using System; using System.Text; using System.Collections.Generic; namespace ArithmeticPractice { st ...

  9. Photoshop:路径填充边缘虚化问题

    怎么才能不让它虚化呢?  解决方案一: 1.同样画出路径 2.新建图层 3.回到路径面板,右击路径图层,选择“填充路径” 4.把“羽化”设置为0,取消选择“消除锯齿” 换个背景色看看效果:一点虚化都没 ...

  10. c++ const 关键字 学习笔记

    const简单介绍: 1不再使用c中的#define,c++默认不给const定义的变量分配内存,所以它默认的是仅本文件可以看到该变量(即internal linkage), const int bu ...