一、Storm概述

     Storm是一个分布式的、可靠的、零失误的流式数据处理系统。

它的工作就是委派各种组件分别独立的处理一些简单任务。在Storm集群中处理输入流的是Spout组件,而Spout又把读取的数据传递给叫Bolt的组件。

Bolt组件会对收到的数据元组进行处理,也有可能传递给下一个Bolt。我们能够把Storm集群想象成一个由bolt组件组成的链条集合。数据在这些链条上传输。而bolt作为链条上的节点来对数据进行处理。

     Storm和Hadoop集群表面看上去非常类似,可是Hadoop上面执行的是MapReduceJobs,而在Storm上执行的是拓扑topology,这两者之间是非常不一样的,关键差别是:MapReduce终于会结束,而一个topology永远会执行(除非你手动kill掉),换句话说。Storm是面向实时数据分析,而Hadoop面向的是离线数据分析。

     如果有这么一种情形。当你看政论类节目的时候。他们会常常提到一些人名和一些热门话题。如果我们把当中人名和话题的反复次数都记录下来,结果应该是一件非常有趣的事情。
     因此,想象在Storm环境下,我们能够把辩论者说的话作为输入流,spout组件来读取这些数据,然后把每一句话发送给bolt1组件,bolt1组件负责把这一句话拆分成一个个单词。再把这些单词发送到bolt2组件。bolt2组件负责统计每一个单词的数量然后把这些信息存储到数据库中。辩论者在不断的说话。而storm不断的实时刷新数据库中结果,当你想查看这些结果时,你仅仅需查询数据库就可以。

     如今,你能够想象假设能够把这些spout和bolt均衡分布到整个集群中,而且能够方便地做无限制的扩展,厉害吧?这就是Storm的威力!


图1.1:一个简单的Topology

     Storm的一些典型应用场景
     1.数据流处理:与其他流处理系统不同,storm不须要中间队列媒介
     2.实时计算:可连续不断的进行实时数据处理,把处理的结果实时更新展示到client
     3.分布式远程过程调用:可充分利用集群中CPU资源,进行CPU密集型计算。


二、Storm组件
     集群中有两种类型的节点:主节点和工作节点
    1. master节点:执行Nimbus进程,负责分发代码。安排任务。监控执行状态(主要是节点成功失败状态)。
    2. worker节点:执行Supervisor进程,负责执行一个Topology的一个子集
图1.2:storm 集群中的组件:     


     Storm集群中的状态都保存在zookeeper或本地磁盘中,因此Storm中的进程都是无状态的。不论什么一个节点失败或重新启动都不会影响整个集群。Storm底层使用zeromq来保证其非凡的特性:
  • 并发的socket 类
  • 比TCP更快,适用于集群环境和超级计算
  • 通过inproc、IPC、TCP和多路广播传输消息
  • 异步IO
  • Connect N-to-N via fanout,pubsub,pipeline,requst-reply
  • 使用push/pull模式
三、Storm特性
  • 编程简单:主要依赖于spout和bolt来实现
  • 支持多种编程语言:基于JVM的语言都能够支持,不论什么一个其他语言仅仅要实现了一个中间类也可支持
  • 容错性高:执行宕机、重新启动等
  • 可拓展:能够随意增删节点到集群
  • 可靠性高:全部消息都被保证至少消费一次。也就是说,Storm中消息不会丢失
  • 高速:快就不必多少了
  • 事务支持
初步了解Storm之后,下一节会通过写一个简单的Demo执行一下来让大家真实体会一下Storm。





















Storm具体解释一、Storm 概述的更多相关文章

  1. (转)Storm UI 解释

    Storm UI link:http://lbxc.iteye.com/category/221265 本文主要解释下storm ui上各项属性的含义. 1. mainpage 首页主要分为3块: a ...

  2. 分布式流式处理框架:storm简介 + Storm术语解释

    简介: Storm是一个免费开源.分布式.高容错的实时计算系统.它与其他大数据解决方案的不同之处在于它的处理方式.Hadoop 在本质上是一个批处理系统,数据被引入 Hadoop 文件系统 (HDFS ...

  3. storm源码之storm代码结构【译】【转】

    [原]storm源码之storm代码结构[译]  说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正 ...

  4. 【原】storm源码之storm代码结构【译】

    说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...

  5. _00019 Storm架构介绍和Storm获取案例(简单的官方网站Java案例)

    博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  6. storm源码之storm代码结构【译】

    storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于S ...

  7. Storm(一)Storm的简介与相关概念

    一.Storm的简介 官网地址:http://storm.apache.org/ Storm是一个免费开源.分布式.高容错的实时计算系统.Storm令持续不断的流计算变得容易,弥补了Hadoop批处理 ...

  8. Storm系列三: Storm消息可靠性保障

    Storm系列三: Storm消息可靠性保障 在上一篇 Storm系列二: Storm拓扑设计 中我们已经设计了一个稍微复杂一点的拓扑. 而本篇就是在上一篇的基础上再做出一定的调整. 在这里先大概提一 ...

  9. Storm系列二: Storm拓扑设计

    Storm系列二: Storm拓扑设计 在本篇中,我们就来根据一个案例,看看如何去设计一个拓扑, 如何分解问题以适应Storm架构,同时对Storm拓扑内部的并行机制会有一个基本的了解. 本章代码都在 ...

  10. Storm概念学习系列之storm核心组件

    不多说,直接上干货! Storm核心组件 了解 Storm 的核心组件对于理解 Storm 原理非常重要,下面介绍 Storm 的整体,然后介绍 Storm 的核心. Storm 集群由一个主节点和多 ...

随机推荐

  1. OpenLayers学习笔记5——使用jQuery UI实现查询并标注(UI篇)

    近期事情非常多,老板给的压力也非常大.经常出差,另外项目和个人研究还都要跟上,本月要交论文,还要写专利,仅仅能抽时间来学习其它的东西了. 关于OpenLayers的在博客中不会写太多详细的实现(网上有 ...

  2. 【deep learning学习笔记】注释yusugomori的LR代码 --- LogisticRegression.cpp

    模型实现代码,关键是train函数和predict函数,都很容易. #include <iostream> #include <string> #include <mat ...

  3. 2006 ACM Northwestern European Programming Contest C题(二分求最大)

    My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a numberN o ...

  4. Windows XP环境下 搭建Android NDK环境

    搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygw ...

  5. C++异常中的堆栈跟踪

    C++语言的运行时环境是基于栈的环境,堆栈跟踪(trace stack)就是程序运行时能够跟踪并打印所调用的函数.变量及返回地址等,C++异常中的堆栈跟踪就是当程序抛出异常时,能够把导致抛出异常的语句 ...

  6. pptv web前端面试题

    今天上午一考完试,就一直等待pptv的电话,结果下午就收到了pptv的通知(pptv的效率还是很不错的,之前面试官和我说在一到两周之内给回复,结果过了7天就给回复了,赞一个)因为我面试的是web前端( ...

  7. Java NIO实战之聊天室

    在工作之余花了两个星期看完了<Java NIO>.整体来说这本书把NIO写的非常具体,没有过多的废话,讲的都是重点,仅仅是翻译的中文版看的确实吃力.英文水平太低也没办法,总算也坚持看完了. ...

  8. Memcahce(MC)系列(一)Memcache介绍、使用、存储、算法、优化

    写在前面:前不久在工作中被问到关于MC一致哈希的问题,由于时隔太久差点儿忘记,特前来恶补一下MC,下面是前几年在工作中学习MC时的一些资料,来历不明,特整理一下,希望对大家的学习也能有帮助. 32 的 ...

  9. [Android学习笔记]继承自ViewGroup的控件的过程学习

    ViewGroup文档 http://developer.android.com/training/index.html 继承自ViewGroup需要重写onLayout方法用来为子View设定位置信 ...

  10. android中设置TextView/Button 走马灯效果

    在Android的ApiDemo中,有Button的走马灯效果,但是换作是TextView,还是有一点差异. 定义走马灯(Marquee),主要在Project/res/layout/main.xml ...