我对暴风雪有个疑问,下面是:多个主管能否在单个节点上运行?还是说我们只能在一台机器上运行一个主管?谢谢。
bmp9r5qi1#
管理器是按节点配置的。在单个节点上运行多个管理器没有多大意义。唯一的目的 supervisor 守护进程是启动/停止工作进程(每个工作进程负责运行拓扑的子集)。从文档页面。。主管会监听分配给其机器的工作,并根据nimbus分配给它的内容在必要时启动和停止工作进程。
supervisor
fumotvh32#
理论上可能-实际上你可能不需要这样做-除非你正在做一个poc/演示。我做了一个演示,制作了多个storm副本并更改了其中一个supervisors的端口—您可以通过更改supervisors.slots.ports来完成。
yiytaume3#
可以在一台主机上运行多个监控器。看看风暴用户邮件列表中的这篇文章。只需复制多个storm,并更改storm.yaml以为每个监控器指定不同的端口(supervisor.slots.ports)
ukdjmx9f4#
它基本上是按节点设计的。所以一个节点应该只有一个管理器。此守护进程处理基于端口配置的工作进程数。因此,每个节点不需要额外的监控守护进程。
qlzsbp2j5#
原则上,每台物理机器应该有一个监控守护进程。为什么?答:如果nimbus在重启尝试中永久失败,nimbus会接收到主管守护进程的心跳,并尝试在主管死亡的情况下重启它。nimbus将把这个工作分配给另一个主管。想象一下,两个监管者同时从同一台物理机器上下来,容错能力差!!运行两个监控守护进程也会浪费内存资源。如果您的计算机内存非常高,只需在storm.yaml中添加更多端口,而不是添加supervisor.slots.ports,从而增加工作线程的数量。
5条答案
按热度按时间bmp9r5qi1#
管理器是按节点配置的。在单个节点上运行多个管理器没有多大意义。唯一的目的
supervisor
守护进程是启动/停止工作进程(每个工作进程负责运行拓扑的子集)。从文档页面。。主管会监听分配给其机器的工作,并根据nimbus分配给它的内容在必要时启动和停止工作进程。
fumotvh32#
理论上可能-实际上你可能不需要这样做-除非你正在做一个poc/演示。我做了一个演示,制作了多个storm副本并更改了其中一个supervisors的端口—您可以通过更改supervisors.slots.ports来完成。
yiytaume3#
可以在一台主机上运行多个监控器。看看风暴用户邮件列表中的这篇文章。
只需复制多个storm,并更改storm.yaml以为每个监控器指定不同的端口(supervisor.slots.ports)
ukdjmx9f4#
它基本上是按节点设计的。所以一个节点应该只有一个管理器。此守护进程处理基于端口配置的工作进程数。
因此,每个节点不需要额外的监控守护进程。
qlzsbp2j5#
原则上,每台物理机器应该有一个监控守护进程。为什么?
答:如果nimbus在重启尝试中永久失败,nimbus会接收到主管守护进程的心跳,并尝试在主管死亡的情况下重启它。nimbus将把这个工作分配给另一个主管。想象一下,两个监管者同时从同一台物理机器上下来,容错能力差!!
运行两个监控守护进程也会浪费内存资源。
如果您的计算机内存非常高,只需在storm.yaml中添加更多端口,而不是添加supervisor.slots.ports,从而增加工作线程的数量。