Java 如何解读暴风雪';什么是平行性?
我是Apache Storm的新手,对并行性问题感到困惑 想象一个拓扑,其中有1个喷口、8个辅助螺栓和1个聚合器螺栓 当我使用Java 如何解读暴风雪';什么是平行性?,java,apache-storm,Java,Apache Storm,我是Apache Storm的新手,对并行性问题感到困惑 想象一个拓扑,其中有1个喷口、8个辅助螺栓和1个聚合器螺栓 当我使用 topoBuilder.setSpout("spout", new Spout(), 1); topoBuilder.setBolt("worker", new WorkerBolt(), 5); topoBuilder.setBolt("aggregator", new AggregatorBolt(), 1); 拓扑已经设置好,如果我使用 conf.setWork
topoBuilder.setSpout("spout", new Spout(), 1);
topoBuilder.setBolt("worker", new WorkerBolt(), 5);
topoBuilder.setBolt("aggregator", new AggregatorBolt(), 1);
拓扑已经设置好,如果我使用
conf.setWorkerNum(2);
存在2个工作进程,每个进程由一个拓扑组成,即1个喷口、5个工作螺栓和1个聚合器螺栓
问题1。所以我总共有2个喷嘴,10个工人螺栓和2个聚合器螺栓。对吗
我试图测量一种分组方法,工作螺栓的实例数量对结果有很大影响
问题2。如果要更改辅助螺栓的实例数,只需更改topoBuilder.setBolt(“worker”,new WorkerBolt(),20)代码>,或者我应该更改conf.setWorkerNum(4)代码>
免责声明-我也是一个新手,但我会根据我对Storm ATM的理解来回答
问题1。否。设置numWorkers
AKA“topology.workers”决定拓扑将在集群中分配多少工作进程(插槽)。您的螺栓将在所有插槽之间分开。因此,您将有1个喷口实例、5个辅助螺栓实例和1个聚合器螺栓实例分布在2个辅助进程上。实例在Storm文档中称为tasks
问题2。第一种选择
值得一提的是,还有另一个参数,builder.setBolt(…).setNumTasks(x)
。这将控制螺栓/喷嘴的实例数。默认情况下,这将等于parallelism_hint指定的执行器(线程)数量,但如果您希望有一些空间来扩展拓扑,则任务计数可以高于执行器计数。类似的问题,请参见我的回答