1

我正在使用 Apache mesos 和马拉松。我有 3 个主节点和 3 个从节点。我用 quorum 2 配置 mesos。后来我发布了一个 JSON 来运行一项马拉松作业,一切看起来都很好。

然后我尝试关闭两个主节点以打破仲裁,在此之后,mesos取消注册所有从属并且一切看起来都很好,但是当我检查从属时我发现启动的作业正在继续运行......这是否正常?我假设在失去法定人数后马拉松会停止所有工作

4

1 回答 1

2

Mesos 哲学的一部分,特别是对于长期运行的服务,是一个或多个 Mesos 组件的故障不需要停止用户应用程序。

如果从服务器关闭并且框架启用了检查点,则执行程序驱动程序将--recovery_timeout在关闭执行程序/任务之前等待从服务器的(默认 15 分钟)。为防止这种情况,请在您的框架上禁用检查点(在 Marathon 中,只需--checkpoint=false在启动 Marathon 时设置)。另请参阅https://mesosphere.github.io/marathon/docs/command-line-flags.html--failover_timeout上的马拉松

另一方面,如果只是关闭了 Masters/ZKs,而 Slaves 仍然在运行,slave 仍然可以监视任务并排队状态更新,因此任务可以保持活动状态。如果 ZK 失去了 quorum,那么就没有领先的 master,每个 slave 将继续独立运行,直到检测到新的 leader,此时它将向 master 重新注册并发送任何排队的状态更新。

于 2015-02-12T11:52:23.970 回答