一、             Storm整体介绍

Storm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker。

因此,从应用的角度,JStorm 应用是一种遵守某种编程规范的分布式应用。从系统角度, JStorm一套类似MapReduce的调度系统。 从数据的角度, 是一套基于流水线的消息处理机制。

实时计算现在是大数据领域中最火爆的一个方向,因为人们对数据的要求越来越高,实时性要求也越来越快,传统的Hadoop MapReduce,逐渐满足不了需求,因此在这个领域需求不断。

1.1.  Storm组件和Hadoop组件对比

 

Storm

Hadoop

角色

Nimbus

JobTracker

 

Supervisor

TaskTracker

 

Worker

Child

应用名称

Topology

Job

编程接口

Spout/Bolt

Mapper/Reducer

1.2. 优点

在Storm和JStorm出现以前,市面上出现很多实时计算引擎,但自Storm和JStorm出现后,基本上可以说一统江湖: 究其优点:

  • 开发非常迅速:接口简单,容易上手,只要遵守Topology、Spout和Bolt的编程规范即可开发出一个扩展性极好的应用,底层RPC、Worker之间冗余,数据分流之类的动作完全不用考虑
  • 扩展性极好:当一级处理单元速度,直接配置一下并发数,即可线性扩展性能
  • 健壮强:当Worker失效或机器出现故障时, 自动分配新的Worker替换失效Worker
  • 数据准确性:可以采用Ack机制,保证数据不丢失。 如果对精度有更多一步要求,采用事务机制,保证数据准确。

二、             安装

参考文档:

https://github.com/alibaba/jstorm/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85

三、             storm详细讲解

3.1. storm的整体架构

3.2.        基本概念简介

图中     这种颜色标识的是storm中的基本组件,包括:

Topology,bolt,spout,worker,task,slot,stream,tuple

3.2.1.              Topology

Storm的核心是topology,程序以topology作为一个整体提交到集群上

3.2.2.            Spout

数据流入口:spout程序负责从数据源读入数据,然后发射出去,形成一个stream流,可以被多个bolt接受,形成多个流

3.2.3.            Bout

数据的消费者,从stream流中读取数据,处理数据

可以从不同的流中读取数据

3.2.4.            Stream

Spout发射的数据形成数据流,

3.2.5.            Worker

可以理解为一个topology承包给多少个包工头(worker)

3.2.6.            Task

可以理解为工人,一个worker下面有多个task,每个task运行一个bolt或spout的实例

3.3.        Bolt,spout和worker,task的关系

最新文章

  1. HDU4080 Stammering Aliens(二分 + 后缀数组)
  2. 【LeetCode】16. 4Sum
  3. 学习方法和阶段介绍 、 iOS界面开发引入 、 构造第一个App 、 视图控制器和视图 、 控件与事件 、 InterfaceBuilder
  4. VCL主要框架
  5. HTTP协议中的5类状态码
  6. C#Winfrom中,窗体加载时会自动执行一次控件的textchange事件,怎么让它不执行?
  7. You have new mail in /var/spool/mail/root 烦不烦你?
  8. html良好结构-之豆瓣风格
  9. Test failed.尝试加载Oracle客户端库时引发BadImageFormatException
  10. 进阶:案例五: Dynamic 创建 Business Graphic
  11. java8 泛型声明 The diamond operator ("<>") should be used
  12. 前端学PHP之自定义模板引擎
  13. springboot(三):Spring boot中Redis的使用
  14. 建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞
  15. Django学习笔记(2)——模型,后台管理和视图的学习
  16. [Linux] 一个前端必会的 Nginx 免费教程-在虚拟机中用deepin测试
  17. mysql 客户端连接报错Illegal mix of collations for operation
  18. Spring:MVC
  19. 2018软工实践—Beta冲刺(7)
  20. maven国内稳定的阿里源

热门文章

  1. BZOJ4299 & CC FRBSUM:ForbiddenSum & BZOJ4408 & 洛谷4587 & LOJ2174:[FJOI2016]神秘数——题解
  2. 洛谷4577 & LOJ2521:[FJOI2018]领导集团问题——题解
  3. NOIP2016Day1T3换教室(floyd+期望dp)
  4. zigbee ---- 各种ID的作用
  5. mac之os x系统下搭建nodejs+express4.x+mongodb+gruntjs整套前端工程
  6. C# 中的委托和事件(详解)
  7. Jade模板引擎学习(二)语法:代码、变量、循环、过滤器及mixin
  8. Mybatis 参考
  9. PowerDesigner16 设置导出sql文件的编码
  10. mybatis在Mapper的xml文件中的转义字符的处理