我在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
有人能解释一下吗?
首先,我会仔细检查您是否能够与马拉松主持人的Zookeeper交谈。
接下来,有几个相关的点需要注意:
- 根据Zookeeper管理员指南(http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkMulitServerSetup),你应该有奇数个Zookeeper实例用于HA。两个簇的大小几乎肯定会导致糟糕的结果。
- 对于高可用性Mesos集群,您应该运行奇数个主服务器,并确保根据该数量适当地设置
--quorum
标志。在Apache Mesos网站上的操作指南中查看如何设置--quorum
标志(以及为什么它很重要)的详细信息:http://mesos.apache.org/documentation/latest/operational-guide - 在一个高可用的Mesos集群中(#masters> 1),你应该让Mesos代理和框架使用Zookeeper发现领先的master。这使它们能够在发生故障转移时重新发现主服务器。在您的示例中,假设规范的ZK端口,您将Mesos主机上的
--zk
标志设置为--zk=zk://172.16.50.117:2181,172.16.50.115:2181/mesos
(添加第三个ZK实例,参见上面的第一点)。对于Mesos代理和Marathon中的--master
标志应该使用相同的值,而不是指定单个主服务器。
最好在集群中运行奇数个主机。要做到这一点,要么添加另一个母版,这样你就有三个,要么删除一个,这样你就只有一个。