当前位置: 首页 > 知识库问答 >
问题:

在阿帕奇Storm中,从1个喷口向不同的螺栓发送不同的元组

戚飞
2023-03-14
OutputCollector.emit(new Values(B, C))?

共有1个答案

龙俊德
2023-03-14

要从一个喷口向不同的螺栓发射元组,可以使用命名流,如下所示:

喷口

@Override
public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
    outputFieldsDeclarer.declareStream("streamA", new Fields("A"));
    outputFieldsDeclarer.declareStream("streamB", new Fields("B"));
}


@Override
public void nextTuple() {
    outputCollector.emit("streamA", new Values("A"));
    outputCollector.emit("streamB", new Values("B"));
}

然后,每个螺栓订阅一个特定的流:

builder.setBolt("MyBoltA", new BoltA()).shuffleGrouping("MySpout", "streamA"); 
builder.setBolt("MyBoltB", new BoltB()).shuffleGrouping("MySpout", "streamB");
tuple.getSourceStreamId()
 类似资料:
  • 我正在本地开发一个Storm拓扑。我正在使用Storm 0.9.2孵化,并开发了一个简单的拓扑。当我使用LocalCluster()选项部署它时,它工作得很好,但它不会显示在我的Storm UI中,它只是执行而已。 当我定期部署它时,它会在我的Storm UI中显示拓扑结构,但当我单击它时,不会看到喷口或螺栓。 我还尝试了许多Storm启动项目中的示例WordCountTopology。同样的行为

  • 我在本地模式下运行Apache Storm拓扑,它工作正常,但是当我将其提交给Storm时,喷口和螺栓不会显示在StormUI中,除了拓扑。 有人建议监督员应该运行,我也尝试过,即监督员、雨云和动物园管理员运行良好。提前谢谢。有人问了类似的问题,这表明监督员应该在阿帕奇Storm上——喷口和螺栓不存在于StormUI...但这在我的情况下不起作用任何想法,请。

  • 我在Apache Storm拓扑上运行了一个性能测试,并注意到kinesis-spout中的“failed”计数非常高(几乎占了元组的1/3)。这个数值是多少?

  • 因此,如果您使用基于JUnit的单元测试,是否建议您运行一个小型模拟拓扑(?)并测试该拓扑下的(或)的隐含契约?或者,是否可以使用JUnit,但这意味着我们必须仔细模拟Bolt的生命周期(创建它、调用、嘲弄等)?在这种情况下,被测类(螺栓/喷口)有哪些一般的测试点需要考虑? 其他开发人员在创建正确的单元测试方面做了什么? 我注意到有一个拓扑测试API(参见:https://github.com/x

  • 我的拓扑如下所示: 蒂娅!