美文网首页
Storm 基础

Storm 基础

作者: 学术界末流打工人 | 来源:发表于2020-02-03 10:50 被阅读0次

    Storm核心概念

    1. Topologies 拓扑, 将整个流程串起来
    2. Streams 流, 数据流, 水流
    3. Spouts 产生数据/水流的东西
    4. Bolts 处理数据/水的东西 (水壶/水桶接)
      Tuple 数据/水
    5. Stream groupings
    6. Reliability
    7. Tasks
    8. Workers
    Storm 结构图(官网)

    Storm核心概念总结

    • Topology: 计算拓扑,由spout和bolt组成的
    • Stream: 消息流,抽象概念,没有边界的tuple构成
    • Tuple: 消息/数据,传递的基本单元
    • Spout: 消息流的源头,Topology的消息生产者
    • Bolt: 消息处理单元,可以做过滤,聚合,查询/写数据库的操作

    Topologies

    逻辑上一个实时的应用会被打包成一个Storm topology。一个Storm拓扑类似于一个MapReduce作业。有一个关键点不同的是MapReduce作业完成最终会结束,但是Storm中一个topology会一直执行,直到被你kill。一个topology是一个图(graph)由多个spout 和 bolt 构成,它们会被连接成一个stream组。

    Resources:

    Streams

    在Storm中,stream 是一个核心抽象。一个steam是一个无界的多个tuples的序列,这个stream被处理和创建在并行分布式的环境中。Steams被定义成一个schema,这个schema的名字是stream的tuples中的。默认情况下,它包含了 integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays 等类型。你也可以按照要求定义自己的类型。

    每一个Stream会给一个id

    Resources:

    • Tuple: streams are composed of tuples
    • OutputFieldsDeclarer: used to declare streams and their schemas
    • Serialization: Information about Storm's dynamic typing of tuples and declaring custom serializations

    Spouts

    一个Spout是一个stream的源头在一个topology中,一般来说spouts会读tuples数据从外部的数据源,再把它们发送到topology中(e.g. a Kestrel queue or the Twitter API)。Spouts可以是可靠的和不可靠的。当被Storm处理失败时,一个可靠的spout可以重新发送一份tuple。然而不可靠的spout可能会丢掉一些数据。

    Spouts可以发送超过一个的stream。为此,需要调用declareStream方法

    Spouts中主要的方法是nextTuple

    其他的两个主要的方法是ackfail,这两个方法只在可靠的spouts中可以调用。
    Resources:

    Bolts

    在topologies中所有的处理都在bolts中完成,它可以做很多事例如filtering, functions, aggregations, joins, talking to databases, and more。
    它既可以做一些简单的流的转换,也可以做复杂的流的转换它通常要求多个步骤和多个bolts。
    它可以发射多个流,所以需要声明多个流通过declareStream方法
    在bolt中主要的方法是execute.

    Resources:


    References

    1. Storm 官网
    2. 基于Storm构建实时热力分布项目实战

    相关文章

      网友评论

          本文标题:Storm 基础

          本文链接:https://www.haomeiwen.com/subject/lphcxhtx.html