【问题标题】:How to run multiple storm topology at the same instance?如何在同一实例上运行多个风暴拓扑?
【发布时间】:2015-08-10 16:15:18
【问题描述】:

我正在学习风暴。我对我们可以在 Apache Storm 上一次运行的拓扑数量有疑问。我在风暴集群上提交了两个拓扑,但一次只能运行一个拓扑。我需要 KILL 或 DEACTIVATE已经存在的拓扑来运行任何新的拓扑。

我使用的是 Storm 0.9.4

动物园管理员 3.4.6

卡夫卡 2.10-0.8.2.1

我正在运行一个storm nimbus、supervisor和ui实例。

我需要运行每个实例的多个实例吗?

我需要做什么才能同时运行多个拓扑?

我附上我的风暴用户界面截图。

【问题讨论】:

    标签: apache-kafka apache-storm apache-zookeeper


    【解决方案1】:

    我只使用了 2 个 supervisor.slots.ports(在storm.yaml 中)。并且我的拓扑配置中的 setNumWorkers() 也被指定为 2。因此,首先运行的拓扑占用了两个插槽。现在,我设置了 5 个 supervisor.slots.ports,一切正常。我可以一次运行多个拓扑。

    【讨论】:

    • 你是在 Nimbus 所在服务器的storm.yaml 上设置它还是在主管运行的所有其他服务器上设置它?如果您在 5 个主管上配置 storm.yaml,每个主管有 5 个插槽,您是否能够运行 5*5=25 个拓扑?
    • @Nav 你需要在supervisor机器上设置supervisor.slots.ports。是的,你应该可以运行。确保你在topology中设置了相应的worker数量
    • 所以默认情况下如果每个supervisor有4个slot,那么5个supervisor应该有5*4=20个slot而不配置storm.yaml。但这不会发生。我只能运行 4 个拓扑。第 5 个拓扑有 0 个工作人员(这是有 5 个主管并且没有编辑 storm.yaml)。甚至另一个人也有同样的问题:groups.google.com/forum/#!topic/storm-user/wLOq1nImRWQ
    • 你需要在所有的supervisor机器上配置storm.yaml,并在那里设置supervisor.slots.ports。例如,如果您有 5 台主管机器,那么您需要在所有 5 台机器上拥有storm.yaml,并且您需要对其进行编辑以包含主管插槽。
    • 另外,请确保在您的风暴拓扑中相应地设置setNumWorkers()。如果这超过了管理端口的数量,那么首先运行的拓扑将占用所有插槽,其余的将一无所有
    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多