Apache zookeeper 解决Mesos领头羊问题

Apache zookeeper 解决Mesos领头羊问题,apache-zookeeper,mesos,Apache Zookeeper,Mesos,我们正在使用Mesos在集群上运行作业。我们使用haproxy指向,例如,mesos.seanmcl.com指向mesos主机 如果该主机恰好不是引导程序,UI将在延迟后将浏览器重定向到引导程序,以便您可以看到正在运行的作业。出于各种原因(UI速度,避免被防火墙阻止的端口),我真的很想通过编程与leader一起发现主机。我想不出怎么做 我在Zookeeper文件中搜索了Mesos,但只找到了少量主机信息,如IP地址。有没有办法通过Mesos CLI、Zookeeper CLI等找到Mesos主控

我们正在使用Mesos在集群上运行作业。我们使用haproxy指向,例如,
mesos.seanmcl.com
指向mesos主机

如果该主机恰好不是引导程序,UI将在延迟后将浏览器重定向到引导程序,以便您可以看到正在运行的作业。出于各种原因(UI速度,避免被防火墙阻止的端口),我真的很想通过编程与leader一起发现主机。我想不出怎么做


我在Zookeeper文件中搜索了Mesos,但只找到了少量主机信息,如IP地址。有没有办法通过Mesos CLI、Zookeeper CLI等找到Mesos主控台?

您可以使用
Mesos
本身使用的方法,通过
Zookeeper
通信来确定
主控台

我们的想法是使用
Zookeeper
通信中的成员标签来确定
主要主机
,缓存它并将其用于后续请求。检查以下链接以了解实施情况:

下面是使用
CLI
的示例代码:

编辑:或者,您可以在
Mesos CLI
中使用命令
resolve
,该命令返回当前
主控主机的
主机/端口
,主控主机使用
Mesos resolve
核心中的代码:


这使用mesos resolve有效。我花了一点时间才弄明白zookeeper的url格式。类似的东西可以工作:mesos resolve zk://zookeeper.seanmcl.com:2181/mesosthepythonapi也可以很好地工作。将mesos.cli作为mesos导入。。。mesos.resolve('zk://zookeeper.seanmcl.com:2181/mesos').strip()…我很高兴它有帮助:)