如果Apache Storm的MinBy操作没有返回任何结果,可能是由于以下几个原因:
// 在Bolt的declareOutputFields方法中设置输出字段
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("field1", "field2")); // 设置输出字段
}
// 在Bolt的execute方法中发射输出流
collector.emit("stream1", new Values(value1, value2)); // 发射带有流ID的输出流
// 在Topology中设置MinBy操作
topologyBuilder.setBolt("minByBolt", new MinByBolt())
.shuffleGrouping("spoutBolt", "stream1") // 指定输入流ID
.shuffleGrouping("previousBolt", "stream2"); // 指定另一个输入流ID
topologyBuilder.setBolt("outputBolt", new OutputBolt())
.shuffleGrouping("minByBolt", "stream1"); // 指定输出流ID
确保在以上步骤中都正确设置了字段、流ID和流分组方式,以便在MinBy操作中正确地处理和返回结果。