Storm核心的概念

1、初识Sortm的核心概念
Storm核心的概念
Topologies:拓扑,将整个流程串起来 \ Streams:流,数据流,水流 \ Spouts:生产数据/生产水
Bolts:处理数据/处理水 \ Tuple:数据/水 \ Stream groupings:流分组
Reliability:可靠性 \ Tasks:任务 \ Workers:工人

2、Storm核心概念理解记忆概述
Storm核心的概念
3、Storm核心概念理解记忆之地铁运行模型
Storm核心的概念
4、Storm核心概念理解记忆之Storm
Storm核心的概念
5、Storm核心小结
Storm核心的概念
6、Storm核心概念官方详解
Topologies
实时应用程序的逻辑被打包到Storm拓扑中。Storm拓扑类似于MapReduce作业。一个主要区别是MapReduce作业最终完成,而拓扑将永远运行(或者,直到您杀死它)。 topology是与stream groupings连接的spouts和bolts的图形

Streams
流是Storm中的核心抽象。流是无限制的元组序列,它以分布式方式并行处理和创建。
流使用命名流元组中的字段的模式定义。默认情况下,tuples can contain integers, longs, shorts, bytes, strings, doubles, floats, booleans, and byte arrays.。您还可以定义自己的序列化器,以便可以在元组中本地使用自定义类型。
声明时,每个流都有一个id。由于单流spouts和bolts非常常见,因此OutputFieldsDeclarer提供了方便的方法来声明单流而无需指定id。在这种情况下,流的默认ID为“默认”。

spout
spout是拓扑中流的源。通常,喷口将从外部源中读取元组,并将它们发送到拓扑中(例如,Kestrel队列或Twitter API)。喷口可以是可靠或不可靠的。如果Storm无法对其进行处理,则可靠的喷嘴可以重播元组,而不可靠的喷嘴会在元组发出后立即将其忘记。

bolt
Topologies中的所有处理均通过bolt完成。bolt可以执行任何操作,包括过滤,函数,聚合,联接,与数据库对话等等。

Stream groupings
定义拓扑的一部分是为每个bolt指定应接收的流作为输入。流分组定义了如何在bolt任务之间分配该流。

Reliability
Storm保证每个spout元组将被Topologies完全处理。它通过跟踪每个spout元组触发的元组树并确定何时成功完成该元组树来做到这一点。每个拓扑都有一个与之关联的“消息超时”。如果Storm无法检测到在该超时时间内已完成spout元组,则它将使元组失败并稍后重播。
要利用Storm的可靠性功能,必须在创建元组树中的新边时告诉Storm,并在完成单个元组的处理后告诉Storm。这些是通过spout用来发出元组的OutputCollector对象完成的。

Tasks
每个spout或bolt在整个集群中执行尽可能多的任务。每个任务对应一个执行线程,Stream groupings定义如何将元组从一组任务发送到另一组任务。您可以在TopologyBuilder的setSpout和setBolt方法中为每个spout或bolt设置并行度。

Workers
Topologies跨一个或多个工作进程执行。每个工作进程都是一个物理JVM,并执行Topologies所有任务的子集。例如,如果Topologies的组合并行度为300,并分配了50个工作程序,则每个工作程序将执行6个任务(作为工作程序中的线程)。Storm试图将任务平均分配给所有工人。

7、图解Storm核心概念
Storm核心的概念