storm 拓扑简介
Storm 集群中会存在多个拓扑 (topology), 每个拓扑可类比于批处理集群中的作业(job). 一个运行中的拓扑主要由三部分构成: 工作进程(worker processes), 执行器(executors) 和任务(tasks)
工作进程, 执行器和任务之间的关系
如上图所示, 一个工作进程中运行的是拓扑的一部分, 而这个工作进程却只属于当前拓扑. 在一个工作进程中可能存在一个或多个执行器 (线程), 而一个执行器中可能会有一个或者多个任务, 这些任务都是为同一个组件(spout 或者 bolt) 服务的. 一个运行中的拓扑就是由这些运行于 storm 集群中的诸多机器上的多个进程组成的.
执行器其实是由工作进程生成的线程, 而任务则在执行器中实际执行数据处理的最小工作单元. 其中任务并不是指线程, 而是指用户代码中组件 (spout 或 bolt) 的逻辑实现. 在拓扑运行过程中每个组件的任务数量是固定的, 而执行器和工作进程的数量是可变的. 默认情况下 storm 会在每个线程上运行一个任务.
来源: http://www.jianshu.com/p/d9344a213d22