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. ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 时 Session 关闭问题

    一.问题描述 在向ASP.NET MVC中整合NHibernate.Spring.NET后,如下管理员与角色关系: 类public class Admin { public virtual strin ...

  2. 表单验证插件----jquery validation

    1.下载地址:http://jqueryvalidation.org/ 2.使用方法: <script type="text/javascript" src="ht ...

  3. 编程Tips

    三元运算符 Vb中的iif(expr,truepart,falsepart)和C#中的expr?truepart:falsepart. 无论expr的结果是true还是false,true/false ...

  4. acount

    #include<iostream> using namespace std; class account { public: int de( int i, double b, doubl ...

  5. vertical-align:top属性

    vertical-align这个是设置元素的垂直排列的. 用来定义行内元素的基线相对于该元素所在行的基线的垂直对齐. 它的值比较多:baseline | sub | super | top | tex ...

  6. 蓝桥杯 六角形中填置1~12个数字 dfs

    如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容. ...

  7. 怎样用js得到当前页面的url信息方法(JS获取当前网址信息)

    设置或获取对象指定的文件名称或路径.window.location.pathname 设置或获取整个 URL 为字符串.window.location.href; 设置或获取与 URL 关联的端口号码 ...

  8. jquery、js获取页面高度宽度等

    jquery获取页面高度宽度 //获取浏览器显示区域(可视区域)的高度 : $(window).height(); //获取浏览器显示区域(可视区域)的宽度 : $(window).width(); ...

  9. RestTemplate post如何传递参数

    背景 今天跟同事接口联调,使用RestTemplate请求服务端的post接口(使用python开发).诡异的是,post请求,返回500 Internal Server Error,而使用get请求 ...

  10. Python——Scrapy初学

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中.Scrapy最初是为了页面抓取(更确切来说, 网络抓取)所设计的,也 ...