风暴螺栓中的任务变量
问题描述:
字段分组可以将带有特定字段的元组指向同一个任务。一个执行者可以包含多个任务。风暴螺栓中的任务变量
如果我声明一个带有私有变量整数的螺栓来计算元组。
public static class CountBolt implements IRichBolt {
OutputCollector _collector;
private int count;
public void prepare(Map conf, TopologyContext context, OutputCollector collector) {
_collector = collector;
count = 0;
}
public void execute(Tuple tuple) {
count = count + 1;
_collector.ack(tuple);
}
public void cleanup() {
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
}
public Map getComponentConfiguration() {
return null;
}
}
此计数是否显示相同任务或同一个执行器的输入总数?
答
计数将是每个任务。每个任务都有自己的Spout/Bolt类的实例。
如果变量被声明为static
,那么这将是每个工人。 (不是每个执行者,因为工人可能运行同一喷口/螺栓的多个执行者。)