我有一个EvaluationBolt(用于内存监视),我希望确保每个工作进程上运行一个执行器(在我的例子中,每个物理节点运行一个执行器,即supervisor.slots.ports只配置为端口6700)。在题目上我发现了这个问题:
干杯,孙铁麟
复杂而正确的路线是编写一个Storm调度程序:http://xumingming.sinaapp.com/885/twitter-storm-how-to-developm-a-pluggable-scheduler/。
我还发现Storm scheduler在默认情况下执行主机之间的循环调度,所以大多数时候您可以使用内置的调度器在所有主机上平均分配任务。
我想知道bolts是如何与DB交互的。至于我从https://storm.apache.org/documentation/commanding-the-parallelism-of-a-storm-topology.html中了解到,像spout和bolt这样的节点实际上被分配到了不同的工作进程,并且可能运行在不同的机器上,如果是这样的话,那么不同机器上的任务在同一个bolt中是如何连接到同一个
我试图使Kafka消费者同步消费Kafka的消息。 我遇到的实际问题是消息队列存储在Storm Spout中。 我想做的是让暴风雪等待Kafka的回复,然后让暴风雪消耗下一条信息。 我正在使用Storm KafkaSpout: 我已经更新到Storm 2.0.0,我使用Storm kafka客户端。但是如果我将Storm队列配置为50:
在我的拓扑中,当元组从spout转移到bolt或从bolt转移到bolt时,我看到大约1-2 ms的延迟。我使用纳秒时间戳来计算延迟,因为整个拓扑运行在单个Worker中。拓扑是在集群中运行的,集群运行在具有生产能力的硬件中。 根据我的理解,在这种情况下,元组不需要序列化/反序列化,因为所有东西都在单个JVM中。我已经将大多数喷流和螺栓的并行性提示设置为5,并且喷流仅以每秒100的速率产生事件。我
我有一个小拓扑。它有一个Kafka喷口,一个从喷口读数的螺栓(螺栓a)。螺栓A发射到两个螺栓(螺栓B和螺栓C)。我使用了字段分组。螺栓A发出两种不同类型的数据。一个用于螺栓B,另一个用于螺栓C。 我的问题是,我是否可以这样配置storm,使用于Bolt B的数据总是流向Bolt B的实例,而用于Bolt C的数据总是流向Bolt B的实例?目前,我正在检查螺栓中接收的数据,并跳过不需要的数据。
默认情况下,当Storm喷口或螺栓遇到异常时,它会重新启动喷口或螺栓,然后再试一次。是否有任何配置选项使它停止拓扑,也许在N次重复尝试之后?(例如,Hadoop尝试了4次才放弃。) 我有一个Storm拓扑运行了77天,一个螺栓在每个元组上引发一个异常。在这种情况下,我宁愿它失败,这样我就会注意到有问题。
我建立了一套喷口和螺栓的Storm拓扑,也使用Spring进行依赖注入。 不幸的是,尽管我已经将所有的喷口和螺栓声明为@Components,但没有一个字段自动连接。 然而,在我声明拓扑的地方,Spring运行良好,所有依赖项都被正确注入。 是因为集群吗。submitTopology(“test”,conf,builder.createTopology())将拓扑提交到自动布线不起作用的集群(在本