storm—executor(1)
2121SC@SDUSC
executor简介
Executor是Storm的核心运行单位,一个Executor实际上就是一个线程,一个Worker中可以启动一个或多个Executor,而一个Executor又可以含有多个Task,task是逻辑上的运行单位,一个task是最终完成数据处理的实体单元,每个executor只会运行1个topology的1个component(spout或bolt)的task。
Storm会根据一个组件的Task数目及并行度设置来计算哪些Task应该被分配到哪些Executor中,若未设置Task数目,则默认情况下Task数目与Executor数目相同,每个Executor只有一个Task,executor线程里会在每次循环里顺序调用所有task实例。
Bolt
bolts是一个Storm集群中的关键组件,它把元组作为输入,然后产生新的元组作为输出。实现一个bolt时,通常需要实现IRichBolt接口。Bolts对象由客户端机器创建,序列化为拓扑,并提交给集群中的主机。然后集群启动工人进程反序列化bolt,调用prepare,最后开始处理元组。
注:要创建一个bolt对象,它通过构造器参数初始化成员属性,bolt被提交到集群时,这些属性值会随着一起序列化。
Bolt结构
Bolts拥有如下方法:
-
declareOutputFields(OutputFieldsDeclarer declarer)
为bolt声明输出模式