gpt4 book ai didi

java - 如何解读storm的并行性?

转载 作者:行者123 更新时间:2023-11-29 04:49:23 25 4
gpt4 key购买 nike

我是 Apache Storm 的新手,对并行性感到困惑。

想象一下有 1 个 spout 和 8 个 worker bolts 和 1 个聚合器 bolts 的拓扑。

当我使用

topoBuilder.setSpout("spout", new Spout(), 1);
topoBuilder.setBolt("worker", new WorkerBolt(), 5);
topoBuilder.setBolt("aggregator", new AggregatorBolt(), 1);

并且拓扑设置好了,如果我使用

conf.setWorkerNum(2);

存在 2 个工作进程,每个进程都包含一个拓扑结构,即 1 个 spout、5 个 worker bolts 和 1 个 aggregator bolts。

Q1. So in total I got 2 spouts, 10 worker bolts and 2 aggregator bolts. Is that correct?

我正在尝试衡量一种分组方法,而 worker bolts 的实例数量确实对结果有很大影响。

Q2. If I want to change the number of instances of worker bolts, I should simply change topoBuilder.setBolt("worker", new WorkerBolt(), 20);, or should I change conf.setWorkerNum(4);?

最佳答案

免责声明 - 我也是新手,但我会尝试根据我对 Storm ATM 的理解来回答。

Q1。否。设置 numWorkers 又名“topology.workers”决定您的拓扑将在集群中分配多少工作进程(槽)。您的 bolt 将在所有插槽之间分配。因此,您将有 1 个 spout 实例、5 个 worker bolt 实例和 1 个聚合器 bolt 实例分布在 2 个工作进程上。实例在 Storm 文档中称为 tasks

Q2。第一个选项。

值得一提的是,还有一个参数,builder.setBolt(...).setNumTasks(x)。这控制了您将获得多少个 bolt /喷口实例。默认情况下,这将等于 parallelism_hint 指定的执行程序(线程)的数量,但如果您希望有一些空间来扩展拓扑,则可以拥有比执行程序数量更高的任务数。

关于java - 如何解读storm的并行性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35993057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com