Stream 如何在暴风雨中将元组分配到不同的blot

Stream 如何在暴风雨中将元组分配到不同的blot,stream,grouping,apache-storm,Stream,Grouping,Apache Storm,每个人,我想做这个工作——一个喷口发射数字到blotA,一个喷口发射奇数到Blot\u奇数,一个喷口发射偶数到Blot\u偶数。 我选择了一种方法来使用emit(streamId,tuple),但我不知道在哪里定义我的streamId 在Blot_奇数/Blot_偶数中 declareOutputFields(){declarer.declareStream(“streamId”,新字段(“fieldName”);} 在MyTopology.java的main中 main(){ Topolog

每个人,我想做这个工作——一个喷口发射数字到blotA,一个喷口发射奇数到Blot\u奇数,一个喷口发射偶数到Blot\u偶数。 我选择了一种方法来使用
emit(streamId,tuple)
,但我不知道在哪里定义我的streamId

在Blot_奇数/Blot_偶数中

declareOutputFields(){declarer.declareStream(“streamId”,新字段(“fieldName”);}
MyTopology.java的
main

main(){
TopologyBuilder=新TopologyBuilder();
建筑商设置管道(“num”,新的NumSpout(),10);
builder.setBolt(“判断”,新螺栓(),3)。shufflegroup(“num”);
建造商。立根螺栓(“奇数”,新螺栓(奇数),2)。随机组合(“判断”);
建造商。立根螺栓(“偶数”,新螺栓为偶数(),2)。重新组合(“判断”);
}
但是我失败了。

你可以像下面这样做

builder.setSpout("num", new NumSpout(), 10);
builder.setBolt("judge", new Bolt(), 3).shuffleGrouping("num");
builder.setBolt("odd", new Bolt_odd(), 2).shuffleGrouping("judge", "oddstream");
builder.setBolt("even", new Bolt_even(), 2).shuffleGrouping("judge", "evenstream");
在螺栓的DeclareOutFields方法中,填写如下详细信息

declarer.declareStream("oddstream", new Fields("fieldName"));
declarer.declareStream("evenstream", new Fields("fieldName"));
您可以像下面这样声明拓扑

builder.setSpout("num", new NumSpout(), 10);
builder.setBolt("judge", new Bolt(), 3).shuffleGrouping("num");
builder.setBolt("odd", new Bolt_odd(), 2).shuffleGrouping("judge", "oddstream");
builder.setBolt("even", new Bolt_even(), 2).shuffleGrouping("judge", "evenstream");

请提供新螺栓()、新螺栓奇数()和新螺栓偶数()的代码。可能重复