字段分组可以将具有特定字段的元组定向到同一任务。一个执行器可以包含多个任务。
如果我用一个私有变量整数声明一个bolt来计算元组。
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;
}
}
此计数是否显示同一任务或同一执行器的输入总数?
1条答案
按热度按时间but5z9lq1#
计数将按每个任务进行。每个任务都有自己的spout/bolt类示例。
如果声明了变量,则它将是每个worker
static
. (不是每个执行器,因为一个工人可能会运行同一个管嘴/螺栓的多个执行器。)