Storm体系概要

一、Storm相关术语

  • 1、Nimbus:Strom集群主节点,负责资源分配和任务调度。
  • 2、Supervisor:Storm集群工作节点,接受Nimbus分配任务,管理Worker。
  • 3、Worker:独立的JVM进程,每个节点上可以配置运行一个或多个worker。一个Topology会分配到一个或者多个worker上运行。
  • 4、Executor:指一个Worker的JVM进程中运行的Java线程,一个Executor可以执行多个Task。Storm默认会给每个Executor分配一个Task。
  • 5、Task:Spout和Bolt的实例,他们的nextTuple和execute方法会被Executors调用执行。
  • 5、Topology:实时计算逻辑,计算拓补,由Spout和Bolt组成的图状结构。
  • 6、Spout:Storm编程模型中的消息源,可进行可靠传输(ack/fail机制)
  • 7、Bolt:Storm编程模型中的处理组件,定义execute方法进行实际的数据逻辑处理。可以用于:
    • 过滤
    • 连接(join)和聚合操作(aggregation)
    • 计算
    • 数据库读写
  • 8、Stream:Stream是由无限制的Tuple组成的序列。
  • 9、Tuple:Storm的核心数据结构,是包含了一个或多个键值对的列表。(和Map类似,开发中需要根据key,获得value)

0x01: Storm的分组策略

Storm体系概要_第1张图片
image.png

二、Storm原理架构

  • 1、Storm集群架构图


    Storm体系概要_第2张图片
    image.png
  • 2、数据处理流程图


    Storm体系概要_第3张图片
    image.png
  • 3、拓补图分析


    Storm体系概要_第4张图片
    image.png

三、Storm主要特点

  • 1、简单的编程模型:Spout + Bolt
  • 2、高拓展性
  • 3、高可靠性:消息以消息树的形式存在,提供ack/fail消息保证机制
  • 4、高容错性:
    • 节点级别的容错
    • worker级别的容错
    • nimbus不支持容错
  • 5、支持多语言编程
  • 6、支持本地模式
  • 7、高性能:内部通讯采用ZeroMQ通讯,保证消息被快速处理

四、Storm的拓展:与Yarn结合

  • 1、资源的弹性计算
  • 2、共享底层存储
  • 3、支持多版本共存
  • 4、整体架构的统一

五、Storm的现状与发展趋势

  • Storm的应用场景:
    • 1、流式数据处理(数据预处理、ETL等)
    • 2、并行计算Top N(按字段分组计算top,然后全局汇总)
    • 3、微批处理(在时间窗口内进行批量处理)
    • 4、分布式并行计算

优点

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

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

应用场景

JStorm处理数据的方式是基于消息的流水线处理, 因此特别适合无状态计算,也就是计算单元的依赖的数据全部在接受的消息中可以找到, 并且最好一个数据流不依赖另外一个数据流。

因此,常常用于:

  • 日志分析,从日志中分析出特定的数据,并将分析的结果存入外部存储器如数据库。目前,主流日志分析技术就使用JStorm或Storm
  • 管道系统, 将一个数据从一个系统传输到另外一个系统, 比如将数据库同步到Hadoop
  • 消息转化器, 将接受到的消息按照某种格式进行转化,存储到另外一个系统如消息中间件
  • 统计分析器, 从日志或消息中,提炼出某个字段,然后做count或sum计算,最后将统计值存入外部存储器。中间处理过程可能更复杂。
  • 实时推荐系统, 将推荐算法运行在jstorm中,达到秒级的推荐效果

你可能感兴趣的:(Storm体系概要)