【问题标题】:Supervisors in STORMSTORM 中的主管
【发布时间】:2017-01-05 20:04:39
【问题描述】:

我对风暴有疑问,这里是:

多个主管可以在单个节点上运行吗?还是我们只能在一台机器上运行一个主管?

谢谢。

【问题讨论】:

    标签: distributed-computing apache-storm


    【解决方案1】:

    原则上,每 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 来增加工人数量。
    【解决方案2】:

    理论上可行 - 实际上您可能不需要这样做 - 除非您正在做 PoC/Demo。我通过制作多个风暴副本并更改其中一位主管的端口来为我提供的演示之一做到这一点 - 你可以通过更改 supervisors.slots.ports 来做到这一点。

    【讨论】:

      【解决方案3】:

      它基本上是按节点设计的。所以一个节点应该只有一个主管。此守护进程处理您根据端口配置的工作进程数。

      因此每个节点不需要额外的主管守护进程。

      【讨论】:

        【解决方案4】:

        可以在单个主机上运行多个主管。在storm-user 邮件列表中查看post

        只需复制多个Storm,并更改storm.yaml来指定 每个主管的不同端口(supervisor.slots.ports)

        【讨论】:

          【解决方案5】:

          Supervisor 是按节点配置的。在单个节点上运行多个主管没有多大意义。 supervisor 守护进程的唯一目的是启动/停止工作进程(每个工作进程负责运行拓扑子集)。从文档页面..

          主管监听分配给其机器的工作,并根据 Nimbus 分配给它的内容在必要时启动和停止工作进程。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-08-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-02
            • 2019-08-16
            相关资源
            最近更新 更多