我正在探索Apache Storm。我知道,没有办法确定哪些任务映射到哪个节点。我想知道是否有任何方法可以猜测哪些执行者被分组在一起。举例来说,考虑具有1个喷口和2个螺栓的直链拓扑结构:Apache Storm:将执行者分配给插槽
喷 - > Bolt1 - > Bolt2
如果有3节点的群集,和numworkers = 3,结合并行= 9(3喷嘴+ 2 x 3螺栓),有什么方法可以确定执行器如何分组?我读过,默认调度程序以循环方式均匀分配负载。这是否意味着所有工人都会有一个实例: S - > B1 - > B2执行者?
我想那么在不同的并行性提示的情况下,在我们的例子中,1 Spout,4 Bolt1,4 Bolt2,它将是:S→B1→B2,B1 B1→B2, B1→B2 B2。在这种情况下,还是第一种情况下均匀分布的情况下,流分组是否考虑了组件的所有实例?说B1的混洗分组考虑所有的螺栓实例,即使它们在不同的物理机器上,对吧? –
是的。这个任务听起来很正确。是的,像shuffle或fieldsGrouping这样的分组会考虑所有的执行者。 localOfShuffle是一个例外,它偏好本地消费者而非远程消费者。 –