Apache STORM-元组在工人中的分布

问题描述 投票:0回答:1

我正在使用Apache STORM进行项目,并且我所使用的拓扑依次包括Spout,BoltA(2个执行器)和BoltB(1个执行器)。

                                      Spout --> BoltA --> BoltB

我的理解是,Shuffle分组在螺栓任务之间平均分配了元组,但是我注意到,只有当所有任务都在同一工人上时,这才是正确的。如果有1个以上的工作程序,假设2个工作程序,并且每个工作程序承载一个具有相同螺栓的任务实例,则两个任务的负载均不相等。

使用我的拓扑-我完成一项任务的负载为90%,第二项任务的负载为0%。

为什么多个工人不一样。

grouping apache-storm shuffle
1个回答
0
投票

如果您在Spout和BoltA之间建立了随机连接,则元组应该均匀分布。

正如Stig RohdeDøssing所提到的,您提到的行为与“本地或随机分组”(请参见Storm Concepts)匹配,这将优先将元组发送给本地工作进程中的任务。

因此,如果Spout的并行度为1,并且BoltA任务之一在同一工作进程中,则来自Spout的元组将优先路由到该本地下游任务。

© www.soinside.com 2019 - 2024. All rights reserved.