我正在尝试在一个小的(测试)Mesos集群上部署Cassandra.我有一个主节点(比如10.10.10.1)和三个工作节点:10.10.10.2-4.
在apache mesos的官方网站上有一个为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'
Run Code Online (Sandbox Code Playgroud)
但是当我启动部署脚本时(通过运行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
Run Code Online (Sandbox Code Playgroud)
它会一直重试并显示相同的错误,直到我终止它.
我尝试删除'zk'或用URL中的'mesos'替换它,更改(或完全删除)端口删除URL中的'mesos'字,但我不断收到相同的错误.
我也试着看看其他框架是如何做到的(特别是spark,我希望接下来部署)但是没有找到任何有用的东西.任何想法如何运行它?谢谢!
小智 5
提供的URL mesos.master.url直接传递给底层的Mesos Native Java Library.示例中列出的格式看起来正确.
调试连接问题的后续步骤是验证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
我是致力于重写cassandra-mesos项目的开发人员之一,使其更强大,更稳定,更易于运行.当前master(6aa82acfac)中的代码是生命周期结束,将在接下来的几周内使用重写分支中的代码进行替换.
如果您想尝试重写分支的最新版本,可以在此处找到用于运行框架的marathon.json .下载marathon.json后,更新MESOS_ZK和CASSANDRA_ZK(以及要更新的任何资源值)的值,然后将json POST到marathon at /v2/apps.
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |