Storm实战—基本概念

本文同步于个人Github博客:https://github.com/johnnian/Blog/issues/21,欢迎留言。

基础概念

Storm实战—基本概念_第1张图片
storm-flow

1). Topologies
Storm 运行任务的逻辑单元,由 spouts、bolts 构成的有向图。

2). Tuples
Storm中的基础数据结构,可以包含下面数据结构:integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays, 此外,可以通过序列化(serializers )实现自定义类型的支持;

3). Spouts
数据源,从外部读取数据,传递到 Topologies 内部;

4). Bolts
数据处理单元,Topologies中所有处理都在此进行;

5). Streams
由一组 tuples 构成,Storm的数据流

6). Stream groupings
决定Stream如何分发到bolts,每一种组别对应一种数据传递的策略,目前,Storm中内置了 8 种分组策略:

  • Shuffle grouping: 随机均分Steam,各个 bolts 得到相同数额的数据流;
  • Fields grouping:根据指定的 Fileds 进行定向分发;
  • Partial Key grouping: 和 Fields grouping 类似,在下发的bolts中间进行负载均衡;
  • All grouping: Stream 会逐一复制到下发的 bolts 中进行处理;
  • Global grouping: 所有的Stream向同一个 bolts 传递;
  • None grouping: 目前和Shuffle grouping类似;
  • Direct grouping: Stream传递给指定的bolts;
  • Local or shuffle grouping: 优先传递给正在运行中的bolts,如果没有正在运行的bolts,则按照随机的方式分发;

7). Reliability

Storm保证每个数据流在 topology 中会被完全的传递和处理;

8). Tasks & Workers

Topologies 运行多个工作线程,所有的有作线程均分执行task。

参考

  • concepts

你可能感兴趣的:(Storm实战—基本概念)