【问题标题】:Storm fault tolerance: Nimbus reassigns worker to a different machine?风暴容错:Nimbus 将工作人员重新分配到另一台机器?
【发布时间】:2013-11-18 01:13:40
【问题描述】:

如何让storm-nimbus在同一台机器上重启worker?

为了测试容错性,我对一个工作进程执行了 kill -9 操作,希望该工作进程在同一台机器上重新启动,但在其中一台机器上,nimbus 会在另一台机器上启动该工作进程!!! Nimbus 日志没有显示多次尝试或任何异常或错误!

不胜感激,谢谢!

【问题讨论】:

    标签: restart worker apache-storm fault-tolerance


    【解决方案1】:

    你不应该这样做。工作人员应该能够切换到任何主管的空位。如果你有一个 Bolt 不适应这个,因为它正在读取特定主管的数据,这是一个设计问题。

    此外,Storm 的容错不仅可以处理工作程序故障,还可以处理主管故障,在这种情况下,您将无法在同一个主管上重新启动工作程序。您不必担心工人在哪里:这是 Storm 的一个特性。

    【讨论】:

    • 好吧,我不同意,因为如果你想有意义地利用你的底层硬件,你应该总是担心 CPU、I/O 和内存利用率。是的,我同意必须读取文件将是一个设计问题。这不是这里的情况。此外,从性能的角度来看,均匀利用的服务器场将为您提供最佳性能。如果 Storm 不关心以最佳方式利用农场,我确实认为这是 Storm 的设计缺陷。
    • 您能否分享一下Storm does not care about utilizing a farm optimally. 的含义。只是想了解
    • 当你创建一个 Topology 并设置 worker 的数量时,在 Storm 术语中,你将为 Storm 提供一个初始的“Parallel-Hint”。 Storm 并没有保存这个提示以便在工作人员重新启动时使用它,而是似乎只是忘记了它。只有当 Storm 可以对服务器场进行硬件分析以确定:内核数、内存、I/O 吞吐量和服务器场的网络带宽时,忘记才是可以的。否则,你怎么能确保均匀地利用农场。这些知识要么必须来自创建拓扑的程序员。在这种情况下,Storm 应该尽可能地尊重它!
    • 或者storm至少应该知道场中的CPU核心数量,并尽量确保场被均匀利用!
    • 抱歉,我可能遗漏了一些东西,但无法与您的问题联系起来,因为 Storm 中的 parallelism hint 用于指定拓扑中的初始执行器数量。 ` 而不是保存此提示以在工作人员重新启动时使用它` .. 在工作人员失败的情况下,您希望风暴如何使用它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 2015-06-22
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多