Storm学习笔记(一)

一、概述

Storm 是一个开源的分布式实时计算系统,可以简单可靠的处理大量的数据流。Storm可以很多的 应用场景:实时分析,在线机器学习,持续计算,分布式RPC,ETL等。Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个节点每秒都可以处理数以百万计的消息)。Storm的部署和运维都很便捷,而且是可以使用任意的编程语言来开发应用。

二、Strom结构

  • 结构:
    storm结构称为topology(拓扑),由Stream(数据流),spout(喷嘴-数据流的生成者,连接转换数据流,不处理任何的业务逻辑,数据的转换者和流的发送者),bolt(阀门-数据流运算者,可以接受一个或者多个组件的流,进行处理,可以发送给其他多个bolt,依此类推,bolt是一个stream的消费者也是一个stream的产生者)组成。可以组成一个复杂的数据处理流的拓扑网络。拓扑网络优势:把大问题拆分成小步骤,把每一个小问题拆分成一个小的bolt,利用分布式的方式分布到不同机器上并行的进行处理。
    不同于Hadoop的job,Storm中的topology会一直运行下去,除非进程被杀死获取取消部署。

  • Stream
    Storm的核心数据结构是tuple(元组),本质上是包含了一个或者多个键值对的列表。Stream是由无限的tuple组成的序列。

  • Spout
    spout连接数据源,将数据转化成为一个个的tuple,并将tuple作为数据流进行发射。开发一个spout 的主要工作就是利用API编写代码从数据源消费数据流。
    spout的数据源可以有很多种来源:
    web或者移动程序的点击流
    社交网络信息
    传感器收到的数据
    应用程序产生的日志信息
    spout通常指负责转换数据、发射数据,通常不会用于处理业务逻辑,从而可以很方便的实现spout的复用。

  • bolt
    主要负责数据的运算,将接收到的数据实施运算后,选择性的输出一个或者多个数据流。
    一个bolt可以接收多个由spout或者bolt发射的数据流,从而可以组件出复杂的数据转换和处理网络拓扑结构。

    bolt常见的典型功能:

    • 过滤
    • 连接和聚合
    • 计算
    • 数据库的读写

你可能感兴趣的:(storm)