| Topology |
一个实时计算应用程序逻辑上被封装在Topology对象中,类似Hadoop中的作业。与作业不同的是,Topology会一直运行直到显式地杀死它 |
| Nimbus |
负责资源分配和任务调度,类似Hadoop的JobTracker |
| Supervisor |
负责接收Nimbus分配的任务,启动和停止属于自己管理的Worker进程,类似Hadoop的TaskTracker |
| Worker |
运行具体处理组件逻辑的进程 |
| Executor |
Storm 0.8之后,Executor为Worker进程中的具体的物理线程,同一个Spout/Bolt的Task可能会共享一个物理线程,一个Executor中只能运行隶属于同一个Spout/Bolt的Task |
| Task |
每一个Spout/Bolt具体要做的工作,也是各节点之间进行分组的单位 |
| Spout |
在Topology中产生源数据流的组件。通常Spout获取数据源的数据(如Kafka、MQ等读取数据),然后调用nextTuple函数,发射数据供Bolt消费 |
| Bolt |
在Topology中接受Spout的数据然后执行处理的组件。Bolt可以执行过滤、函数操作、合并、写数据库等任何操作。Bolt在接收到消息后会调用execute函数,用户可以在其中执行自己想要的操作 |
| Tuple |
消息传递的基本单元 |
| Stream |
源源不断传递的Tuple组成了Stream |
| Steam分组 |
即消息的分区(partition)方法。Strom提供若干种实用的分组方式,包括 Shuffle、Fields、All、Global、None、Direct和Local or Shuffle等。 |