尝试连接到远程节点时,cassandra 1.2 nodetool获取“连接失败”

时间:2013-07-02 16:29:05

标签: cassandra nodetool

我正在使用Oracle的64位JVM版本1.7.0_10的Amazon Web Service VPC上运行cassandra 1.2的6节点集群。

当我登录其中一个节点(例如10.0.12.200)时,我可以正常运行nodetool -h 10.0.12.200 status

但是,如果我尝试在同一终端的群集(10.0.32.153)中使用另一个IP地址,我会Failed to connect to '10.0.32.153:7199: Connection refused'

在我尝试连接的10.0.32.153节点上,我做了以下检查。

  • 从10.0.12.200开始,我可以运行telnet 10.0.32.153 7199并获得连接,因此它似乎不是端口7199的安全组/防火墙问题。

  • 在10.0.32.153上,如果我运行netstat -ant|grep 7199,我会看到

    tcp 0 0 0.0.0.0:7199 0.0.0.0:* LISTEN

    所以cassandra似乎正在侦听端口

  • 10.0.32.153上的cassandra-env.sh文件包含jmx活动的所有JVM_OPTS

    -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

在搜索互联网时尝试解决此问题时,我看到的黑暗中唯一的镜头是设置以下内容:

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=10.0.32.153"

但是当我这样做时,我甚至没有得到回应。它只是挂起。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:3)

该问题最终成为防火墙/安全组问题。虽然确实使用了jmx端口7199,但显然其他端口随机用于rmi。 Cassandra port usage - how are the ports used?

所以解决方案是打开防火墙然后配置cassandra-env.sh以包含

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<ip>