美文网首页
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