风暴中的监管者

m528fe3b  于 2021-06-24  发布在  Storm
关注(0)|答案(5)|浏览(300)

我对暴风雪有个疑问,下面是:
多个主管能否在单个节点上运行?还是说我们只能在一台机器上运行一个主管?
谢谢。

bmp9r5qi

bmp9r5qi1#

管理器是按节点配置的。在单个节点上运行多个管理器没有多大意义。唯一的目的 supervisor 守护进程是启动/停止工作进程(每个工作进程负责运行拓扑的子集)。从文档页面。。
主管会监听分配给其机器的工作,并根据nimbus分配给它的内容在必要时启动和停止工作进程。

fumotvh3

fumotvh32#

理论上可能-实际上你可能不需要这样做-除非你正在做一个poc/演示。我做了一个演示,制作了多个storm副本并更改了其中一个supervisors的端口—您可以通过更改supervisors.slots.ports来完成。

yiytaume

yiytaume3#

可以在一台主机上运行多个监控器。看看风暴用户邮件列表中的这篇文章。
只需复制多个storm,并更改storm.yaml以为每个监控器指定不同的端口(supervisor.slots.ports)

ukdjmx9f

ukdjmx9f4#

它基本上是按节点设计的。所以一个节点应该只有一个管理器。此守护进程处理基于端口配置的工作进程数。
因此,每个节点不需要额外的监控守护进程。

qlzsbp2j

qlzsbp2j5#

原则上,每台物理机器应该有一个监控守护进程。为什么?
答:如果nimbus在重启尝试中永久失败,nimbus会接收到主管守护进程的心跳,并尝试在主管死亡的情况下重启它。nimbus将把这个工作分配给另一个主管。想象一下,两个监管者同时从同一台物理机器上下来,容错能力差!!
运行两个监控守护进程也会浪费内存资源。
如果您的计算机内存非常高,只需在storm.yaml中添加更多端口,而不是添加supervisor.slots.ports,从而增加工作线程的数量。

相关问题