基本概念
理解流式计算概念的要义:数据的处理步骤是预定的。
| 概念 | 含义 |
---|
Topology | 定义数据来了之后怎么一步步处理。这个预定的步骤,会形成一张逻辑的拓扑 |
Tuple | 数据传输、处理的单元 |
Stream | 数据以Tuple的形式,在Topologies中被加工、传递,形成数据流 |
Spout | 数据输入单元,从数据源拉取数据,storm框架不断调用Spout接口读取数据 |
Bolt | 数据处理单元, 处理来自Spouts或者是Bolts发出的Tuple。处理完的结果可以emit出去。 |
Stream Groupings | 将流进行归类,归类了就好应用策略了,Eg. 同类型的数据走特定的Bolts去处理 |
Task | Spouts/Bolts的处理过程被切分成很多Tasks任务,分散在集群上 |
Worker | JVM进程,处理Task任务 |
Executor | 官方文档上并没有将它列入concepts里面,Executor是Worker进程中处理Task的线程 |
组件
| 组件 | 作用 |
---|
Nimbus | 负责资源分配和任务调度 |
Supervisor | 负责接收nimbus分配的任务,启停本节点的worker进程 |
比例关系
| 比例关系 | 说明 |
---|
Nimbus:Supervisor=1:N | 整集群一套Nimbus调度资源,每个节点一个Supervisor管理进程 |
Supervisor:Worker=1:N | 每个supervisor开辟N多worker,即一个supervisor管理多个进程 |
Worker:Executor=1:N | 每个worker可以运行N多Executor,即一个进程有多个线程 |
Executor:Task | 没有可比性,Executor同时只能执行一个Task,看它怎么调度 |
和hadoop类比
| Hadoop | Storm |
---|
JobTracker | Nimbus |
TaskTracker | Supervisor |
Child | Worker |
Job | Topology |
Mapper/Reducer | Spout/Bolt |
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理