【发布时间】:2017-01-05 20:04:39
【问题描述】:
我对风暴有疑问,这里是:
多个主管可以在单个节点上运行吗?还是我们只能在一台机器上运行一个主管?
谢谢。
【问题讨论】:
标签: distributed-computing apache-storm
我对风暴有疑问,这里是:
多个主管可以在单个节点上运行吗?还是我们只能在一台机器上运行一个主管?
谢谢。
【问题讨论】:
标签: distributed-computing apache-storm
原则上,每 1 台物理机应该有 1 个 Supervisor 守护进程。为什么?
Answer : Nimbus 收到 Supervisor 守护进程的心跳并尝试重新启动它,以防主管死亡,如果 nimbus 在重新启动尝试时永久失败。 Nimbus 会将该工作分配给另一个主管。 想象一下,两个Supervisor在同一台物理机上同时宕机,容错能力差!!
运行两个 Supervisor 守护进程也会浪费内存资源。
如果您有非常高内存的机器,只需在storm.yaml 中添加更多端口而不是添加supervisor.slots.ports 来增加worker 的数量。
【讨论】:
supervisor.slots.ports 不等于增加storm.yaml 中的端口数吗?即:您必须在storm.yaml 中使用supervisor.slots.ports 来增加工人数量。
理论上可行 - 实际上您可能不需要这样做 - 除非您正在做 PoC/Demo。我通过制作多个风暴副本并更改其中一位主管的端口来为我提供的演示之一做到这一点 - 你可以通过更改 supervisors.slots.ports 来做到这一点。
【讨论】:
它基本上是按节点设计的。所以一个节点应该只有一个主管。此守护进程处理您根据端口配置的工作进程数。
因此每个节点不需要额外的主管守护进程。
【讨论】:
可以在单个主机上运行多个主管。在storm-user 邮件列表中查看post。
只需复制多个Storm,并更改storm.yaml来指定 每个主管的不同端口(supervisor.slots.ports)
【讨论】:
Supervisor 是按节点配置的。在单个节点上运行多个主管没有多大意义。 supervisor 守护进程的唯一目的是启动/停止工作进程(每个工作进程负责运行拓扑子集)。从文档页面..
主管监听分配给其机器的工作,并根据 Nimbus 分配给它的内容在必要时启动和停止工作进程。
【讨论】: