Storm原理
2018-10-19 本文已影响0人
无尾君
一、架构
Nimbus -> Zookeeper -> Supervisor -> Worker
Nimbus:Master节点,分发代码,指派给具体的 Supervisor节点上的 Worker 节点,运行 Topology对应的组件(Spout/Bolt)的 Task;
Supervisor:从节点,管理运行每一个Worker进程的启动和种植。
Worker:运行具体处理组建逻辑的进程。任务类型有两种:Spout 和 Bolt
Task:每一个 Spout/Bolt的线程称为一个 Task。
Zookeeper:协调 Nimbus 和 Supervisor
二、编程模型
Storm在运行中可分为 Spout 和 Bolt两个组件。数据源从 Spout 开始,数据以 tuple 的方式发送到 Bolt,多个 Bolt 可以串连。一个 Bolt也可接入多个 Spout /Bolt。
Topology:Storm中运行的一个实时应用程序的名称。将 Spout、Bolt整合起来的拓扑图。
Spout:在一个 Topology 中获取源数据流的组件。
Bolt:接收数据然后执行处理的组件
Tuple:一次消息传递的基本单元,一组消息就是一个 Tuple
Stream:Tuple的集合,表示数据的流向。
三、Topology运行
在 Storm中,一个实时应用的计算任务被打包成 Topology 发布,由不同的 Spouts 和 Bolts 通过 Stream 连接起来的”图“。一个 Storm 在集群上运行一个 Topology 时,主要通过以下 3 个实体来完成 Togology 的执行工作:
(1)、Worker
(2)、Executor
(3)、Task