无法从远程主机连接到Cassandra

时间:2016-07-24 08:12:42

标签: ubuntu cassandra

我的主题可能会说这是一个重复的问题,但事实并非如此。我已经尝试了所有可能的方法来搜索这个问题,但未能解决我的问题。

我的PC上运行了Windows 8.1。我已经使用Hyper-V将Ubuntu 16.04版本安装为VM。我在我的Ubuntu系统上安装了Cassandra 3.7。

Cassandra能够从本地主机连接,即从Ubuntu系统连接。我创建了键空间和所有,但是当我尝试从我的golang代码连接Casandra时,我收到错误。

package main

import (
    "fmt"
    "log"

    "github.com/gocql/gocql"
)

func main() {
    // connect to the cluster
    cluster := gocql.NewCluster("192.168.137.217") //Put comma separated IPs in case of multiple cluster
    cluster.Keyspace = "broker_keyspace"
    cluster.Consistency = gocql.Quorum
    session, _ := cluster.CreateSession()
    defer session.Close()
}

192.168.137.217是我的VM的IP地址。我得到的错误是说9042端口不允许连接。这段代码我试图从我的Windows 8.1系统(它是运行Cassandra的VM的主机)运行。我确实试图telnet,发现9042端口没有打开主机连接。

我开始使用cassandra.yaml配置文件,但现在它甚至没有在Ubuntu系统上工作。我无法使用

获取节点状态
nodetool status

我在cassandra.yaml文件中的常用配置如下所示。

rpc_address: localhost
listen_address: localhost

我还在/etc/cassandra/cassandra-env.sh文件中取消注释了以下行,并将公共名称更新为127.0.0.1。

# add this if you're having trouble connecting:
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"

我使用 service cassandra restart 重新启动了cassandra,但当我尝试 nodetool status 时,它会给出以下错误。

nodetool:无法连接到'127.0.0.1:7199' - ConnectException:'Connection refused'。

很抱歉这个问题很长,但是请帮助我真的厌倦了这个问题,在过去的6-7个小时内非常努力。

谢谢..

2 个答案:

答案 0 :(得分:1)

您是否尝试过不使用localhost并实际使用192.168.137.217地址 - JMX,rpc,listen等等?那会是个问题吗?另外,假设这只是PC上的开发虚拟机 - 也许可以检查防火墙是否已关闭?

答案 1 :(得分:0)

您可以按照以下步骤解决上述问题。

更改 cassandra.yaml etc/cassandra/cassandra.yaml

中的以下参数
- start_rpc: true
- rpc_address: 0.0.0.0

取消注释

broadcast_rpc_address: 1.2.3.4