如何配置Cassandra侦听的接口?

如何配置Cassandra侦听的接口?,cassandra,Cassandra,我正试图用OpenJDK1.8在Ubuntu15.10上建立一个测试Cassandra3.3集群。节点之间无法通信,因为Cassandra只监听环回接口,如netstat所示 tcp 0 0 127.0.0.1:7199 0.0.0.0:* LISTEN tcp6 0 0 127.0.0.1:9042 :::* LISTEN 我已尝试在/

我正试图用OpenJDK1.8在Ubuntu15.10上建立一个测试Cassandra3.3集群。节点之间无法通信,因为Cassandra只监听环回接口,如
netstat
所示

tcp        0      0 127.0.0.1:7199          0.0.0.0:*               LISTEN     
tcp6       0      0 127.0.0.1:9042          :::*                    LISTEN
我已尝试在/etc/cassandra/cassandra.yml中插入我的外部IP地址

  • listen\u address
    :我尝试了实际的外部IP地址,并将字段留空

  • rpc_address
    :我尝试了实际的外部IP地址和0.0.0.0

我还尝试在/etc/cassandra/cassandra-env.sh中修改以下内容

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<actual external IP address>"
JVM_OPTS=“$JVM_OPTS-Djava.rmi.server.hostname=”
在每次更改之间,我停止服务,删除/var/lib/cassandra/data/system,然后重新启动服务


如何配置Cassandra侦听的接口?

rpc_address
是外部应用程序客户端将用于连接Cassandra的地址

listen\u address
是Cassandra将用于连接到其他Cassandra节点的地址

我将确保您的节点可以在该IP上通信。具体来说,Cassandra将使用端口7000进行节点间通信(如果使用节点到节点SSL,则使用7001)。最好的测试方法是使用telnet。如果有效,您将看到:

$ telnet 192.168.0.101 7000
Trying 192.168.0.101...
Connected to 192.168.0.101.
Escape character is '^]'.
因此,我想:

  • 确定节点是否可以在端口7000上相互通信
  • 如果可以,将他们看到的IP设置为每个cassandra.yaml的
    listen\u address
  • 您可能还希望选择其中一个作为种子节点

  • 我投票选了你的答案,因为它是正确的。然而,我的问题是文件名中的输入错误(/etc/cassandra/cassandra.yml而不是yaml)。你的回答让我相信我的配置是正确的,我应该去别处看看。另外,我必须停止工作到很晚。Aaron-我正试图在谷歌云上运行
    cassandra
    ,并希望使用外部IP。我在
    rpc_address
    中指定了外部地址,但在尝试启动
    cassandra
    -
    INFO[main]2019-12-17 19:00:37251服务器时出错。java:159-开始在/xx.xx.xxx.xx:9042上侦听CQL客户端(未加密)。。。启动期间遇到异常(java.lang.IllegalStateException):无法绑定xx.xx.x.xx上的端口9042。java.lang.IllegalStateException:无法绑定x.x.x.x上的端口9042。
    您知道可能出现的问题吗?