我正在尝试将cassandra部署到一个小型(测试)Mesos星团上。我有一个主节点(比如10.10.10.1)和三个工作节点:10.10.10.2-4。
在ApacheMesos的官方网站上,有一个指向为mesos开发的cassandra框架的链接(这里是:https://github.com/mesosphere/cassandra-mesos).
我遵循他们提供的教程。在第3步中,他们说我应该编辑conf/mesos.yaml文件,特别是我应该设置mesos.master.url,使它指向主节点(在主节点上我也有conf文件)。
我尝试的第一件事就是用主节点ip替换localhost,所以
mesos.master.url: 'zk://10.10.10.1:2181/mesos'
但是当我启动部署脚本时(通过运行bin/cassandra mesos,正如他们在第5点中所说的那样),我得到了以下错误:
2015-02-24 09:18:24,262:12041(0x7fad617fa700):ZOO_ERROR@handle_socket_error_msg@1697: Socket [10.10.10.1:2181] zk retcode=-4, errno=111(Connection refused): server refused to accept the client
它不断重试并显示相同的错误,直到我终止它。
我尝试删除'zk'或替换为'mesos'在网址,改变(或完全删除)端口删除'mesos'字在网址,但我不断得到相同的错误。
我也试过研究其他框架是如何做到这一点的(特别是spark,我希望下一步会部署它),但没有发现任何有用的东西。有什么办法吗?谢谢!
2条答案
按热度按时间uttx8gqw1#
提供给的url
mesos.master.url
直接传递到底层mesos本机java库。示例中列出的格式看起来是正确的。调试连接问题的下一步是验证zookeeper服务器绑定到的ip地址。你可以通过跑步找到答案
sudo netstat -ntplv | grep 2181
在运行zookeeper的服务器上。我希望看到如下情况:
tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 3957/java
另一种可能是zookeeper专门绑定到localhost:tcp 0 0 127.0.0.1:2181 0.0.0.0:* LISTEN 3957/java
如果zookeeper已绑定到localhost,则客户端只能使用url连接到它zk://127.0.0.1:2181/mesos
####关于CassandraMesos框架未来的一个注记。我是一个致力于重写cassandramesos项目的开发人员,使其更健壮、更稳定、更易于运行。当前主控形状中的代码(
6aa82acfac
)将在未来几周内被重写分支中的代码替换。如果您想尝试重写分支的最新版本,可以在这里找到运行框架的marathon.json。下载marathon.json后,更新
MESOS_ZK
以及CASSANDRA_ZK
(以及任何要更新的资源值)然后将json发布到/v2/apps
.gcxthw6b2#
如果只有一个master而没有zk,那么将mesos.master.url设置为
10.10.10.1:5050
(其中5050是默认的mesos主端口)?如果ben是对的,而cassandra框架需要zk来实现它自己的持久性/ha,那么如果可能,请尝试禁用该特性。否则,如果您真的想要一个没有zk的设置(因此没有任何ha特性),您可能必须自己删除zk代码并重新编译。