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等。 |