如何解决Apache Strom从1.0.3升级到2.2.0,并非所有工人都被使用
我正在从Apache Storm 1.0.3升级到2.2.0,并面临一个特殊的问题,即拓扑任务并未在所有工作程序上运行,而仅在与Spout相同的工作程序上运行。
我正在使用shuffleGrouping,并在2个螺栓和1个喷嘴中配置了6个工人和总共51个执行器。当我启动拓扑时,所有6位工作人员都按预期方式启动,但是只有一名拥有喷嘴的工作人员正在完成所有工作。
我是否需要对2.2.0进行任何特殊配置,我的所有拓扑都可以在1.0.3版中正常工作
作为测试,我还从Strom-starter运行ExclamationTopology,但是看到只有一个工人完成所有工作的相同问题。
在此先感谢您的帮助。
此致
解决方法
升级到Storm 2.0.0时,我也对您观察到的行为感到困惑。原因在于您使用的shuffleGrouping。根据{{3}}:
- 加载感知消息
启用负载感知消息传递(默认)后,随机分组将消息路由考虑在内的其他因素。这对性能的影响取决于拓扑结构及其部署范围(即在过程和计算机上的分布)。因此,评估特定情况下将topology.disable.loadaware.messaging设置为true或false的影响非常有用。
这导致喷口将所有元组委派给发现它的同一工人。要修复此问题并返回原来的行为,请在您的拓扑中将topology.disable.loadaware.messaging
设置为true
,例如与
conf.put("topology.disable.loadaware.messaging",true);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。