---恢复内容开始---

Storm
是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样Storm也可以处理大批量的数据,然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。 Storm同样还具备容错和分布计算这些特性,这就让Storm可以扩展到不同的机器上进行大批量的数据处理。

Storm 与Hadoop异同
1、Strom服务已经开启除非认为关闭,否者不会停止,

​2、实时:storm延时低,storm数据在内存中,hadoop数据使用磁盘作为交换介质。

3、storm延时低 storm 数据在内存中,网络直传,内存计算,省去了批处理时间。
4、storm吞吐量不及hadoop。不适合批处理。
 
Storm集群主要由一个主节点和一群工作节点(worker node)组成,通过 Zookeeper进行协调。
Storm系结构简图:
 
• 主节点:
• 主节点通常运行一个后台程序 —— Nimbus,用于响应分布在集群中的节点,分配任务和监测故障。这
个很类似于Hadoop中的Job Tracker。
• 工作节点:
• 工作节点同样会运行一个后台程序 —— Supervisor,用于收听工作指派并基于要求运行工作进程。每个
工作节点都是topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或
者集群。
• Zookeeper
• Zookeeper是完成Supervisor和Nimbus之间协调的服务。而应用程序实现实时的逻辑则被封装进Storm
中的 “ topology” 。 topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream
Groupings进行连接的图。下面对出现的术语进行更深刻的解析。
• Spout:
• 简而言之,Spout从来源处读取数据并放入topology。 Spout分成可靠和不可靠两种;当Storm接收失败
时,可靠的Spout会对 tuple(元组,数据项组成的列表)进行重发;而不可靠的Spout不会考虑接收成
功与否只发射一次。而Spout中最主要的方法就是 nextTuple(),该方法会发射一个新的tuple到
topology,如果没有新tuple发射则会简单的返回。
• Bolt:
• Topology中所有的处理都由Bolt完成。 Bolt可以完成任何事,比如:连接的过滤、聚合、访问文件/数据
库、等等。 Bolt从Spout 中接收数据并进行处理,如果遇到复杂流的处理也可能将tuple发送给另一个Bolt
进行处理。而Bolt中最重要的方法是execute(),以新的 tuple作为参数接收。不管是Spout还是Bolt,
如果将tuple发射成多个流,这些流都可以通过declareStream()来声明。
Topology
– –计算逻辑的封装
– –由spouts和bolts组成的图,通过stream grouping将图中的spouts
和bolts连接起来

---恢复内容结束---

Strom学习笔记一的更多相关文章

  1. Strom学习笔记2:Storm Maven Project-StromStack工程

    1:IntelliJ新建Maven工程

  2. Storm学习笔记 - Storm初识

    Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流. 2. Storm的特点 高性能,低延迟. 分布式:可解决数据量大 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  7. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  8. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  9. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

随机推荐

  1. 图片处理工具类 - ImageUtils.java

    纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...

  2. JAVA中的内部类使用总结

    1)         内部类的优点是:内部类可以访问外部类的私有成员变量,而不需要new外部类的对象. 2)         内部类又分为:静态内部类.匿名内部类.局部内部类.成员内部类. 3)    ...

  3. 径向基函数(RBF)神经网络

    RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近.时间序列分析.数据分类.模式识别.信息处理.图像处理.系统 ...

  4. 【Python】如何安装easy_install?

    [Python]如何安装easy_install? http://jingyan.baidu.com/article/b907e627e78fe146e7891c25.html easy_instal ...

  5. 3D场景优化

    一) 有效的性能评测 对于任何一个3D应用程序来说,追求场景画面真实感是一个无止尽的目标,其结果就是让我们的场景越来越复杂,模型更加精细,这必然给图形硬件带来极大的负荷以致于无法达到实时绘制帧率.因此 ...

  6. Qt之自定义搜索框

    简述 关于搜索框,大家都经常接触.例如:浏览器搜索.Windows资源管理器搜索等. 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定. 方案一:调用QLineEdit现有接口 void ...

  7. 用Visio画UML用例图

    1.用例图 用例图描述参与者所理解的系统功能.主要元素是用例和参与者. 用例图的4个基本组件:参与者(Actor).用例(Use Case).关系(Relationship)和系统. 下面以银行储蓄系 ...

  8. 用Access作为后台数据库支撑,书写一个C#写入记录的案例

    要想操作一个数据库,不论是那种操作,首先要做的肯定是打开数据库. 下面我们以ACCESS数据库来做例子说明如何打开一个数据库连接!   在这里我们需要用到的是: System.Data.OleDb.O ...

  9. 一个简单的ORM制作(CURD操作类)

    SQL执行类 CURD操作类 其他酱油类 此篇是为上篇文章填坑的,不知道上篇砸过来的砖头够不够,不够的话请大家继续砸. CURD操作类负责将用户提供的条件转换为SQL语句,并提供给IHelper执行, ...

  10. WEBUS2.0 In Action - 搜索操作指南 - (3)

    上一篇:WEBUS2.0 In Action - 搜索操作指南(2) | 下一篇:WEBUS2.0 In Action - 搜索操作指南(4) 3. 评分机制 (Webus.Search.IHitSc ...