16

Apache Mesos 的“主”节点能否与 Mesos 的“从”节点位于同一台机器上?同样(对于高可用性 (HA) 部署),用于 Mesos“主”选举的 Apache Zookeeper 节点能否部署在与 Mesos“从”节点相同的机器上?

Mesos 建议使用 3 个“主节点”进行 HA 部署,Zookeeper 建议将 5 个节点用于其仲裁选举系统。最好让这些服务与 Mesos 的“从属”进程一起运行,而不是让 8 台机器有效地执行“非生产性”任务。

如果这样的设置是可行的,那么这样的设置的优点/缺点是什么?

谢谢!

4

1 回答 1

31

你绝对可以在同一个节点上运行一个 master、slave 和 zk 进程。你甚至可以在同一个节点上运行多个主从进程,只要你给它们每个唯一的端口,但这仅对测试集群有用。

通常我们建议在与您的主节点相同的节点上运行 ZK,但如果您有额外的 ZK,您当然可以在从节点上运行它们,或者您认为合适的混合搭配,只要所有主/从/框架节点都可以到达 ZK 节点,所有从节点都可以到达主节点。

对于较小的集群(<10 个节点),在每个主节点上运行一个从进程可能是有意义的,特别是因为备用主节点不会做太多事情。即使是小型集群的活动主服务器也只使用少量的 cpu、内存和网络资源。只需确保调整该从属服务器上的 --resources 以考虑主服务器的资源使用情况。

一旦你的集群变得更大(尤其是 >100 个节点),进出主节点的网络流量以及它的 cpu/内存利用率变得足够重要,以至于你不想在与主节点相同的节点上运行 mesos 从节点。即使在大规模的情况下,将 ZK 与您的 master 放在一起也应该没问题。

您没有特别问,但我还将讨论在哪里运行您的框架调度程序(例如 Spark、Marathon 或 Chronos)。这些可以与任何其他组件位于同一位置,但它们只需要能够到达主节点和 zk 节点,因为与从节点的所有通信都通过主节点进行。一些客户在主节点上运行调度程序,一些在边缘节点上运行它们(因此用户无权访问从属节点),还有一些客户使用像 Marathon 这样的元框架在从属节点上运行其他调度程序作为 Mesos 任务。

于 2014-10-30T07:57:31.640 回答