无法确定当前领导者

Could not determine the current leader

我处于这种情况,我在 mesos 中有两个主人和四个奴隶。他们都 运行 很好。但是,当我尝试访问马拉松时,出现“无法确定当前领导者”错误。我在两个大师赛(117 和 115)中都参加了马拉松比赛。 这基本上就是我 运行 跑马拉松的原因:

java -jar ./bin/../target/marathon-assembly-0.11.0-SNAPSHOT.jar --master 172.16.50.117:5050 --zk zk://172.16.50.115:2181,172.16.50.117:2181/marathon

有人能解释一下吗?

最好运行集群中的主节点数量为奇数。为此,要么添加另一个主控器以便拥有三个,要么删除一个主控器使您只有一个。

首先,我会仔细检查您是否能够从 Marathon 主机与 Zookeeper 通话。

接下来有几个相关的注意事项:

  • 根据 Zookeeper 管理员指南 (http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkMulitServerSetup),您应该拥有奇数个 Zookeeper 实例以实现高可用性。两个大小的簇几乎肯定会很糟糕。
  • 对于高可用的 Mesos 集群,您应该 运行 奇数个 master,并确保根据该数量适当地设置 --quorum 标志。在 Apache Mesos 网站上的操作指南中查看如何设置 --quorum 标志(及其重要性)的详细信息:http://mesos.apache.org/documentation/latest/operational-guide
  • 在一个高可用的 Mesos 集群(#masters > 1)中,你应该让 Mesos 代理和框架都使用 Zookeeper 发现领先的主机。这可以让他们在发生故障转移时重新发现领先的主服务器。在您假设规范 ZK 端口的情况下,您可以将 Mesos master 上的 --zk 标志设置为 --zk=zk://172.16.50.117:2181,172.16.50.115:2181/mesos(添加第三个 ZK 实例,请参见上面的第一点)。 Mesos 代理和 Marathon 中的 --master 标志应使用相同的值,而不是指定单个主节点。