如何配置Cassandra监听的接口?

时间:2016-04-05 17:12:40

标签: cassandra

我正在尝试使用OpenJDK 1.8在Ubuntu 15.10上设置测试Cassandra 3.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_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>"

在每次更改之间我停止服务,删除/ var / lib / cassandra / data / system,然后重启服务。

如何配置Cassandra监听的接口?

1 个答案:

答案 0 :(得分:4)

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

listen_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 '^]'.

所以我会:

  1. 确定节点是否可以在端口7000上相互通信。
  2. 如果可以的话,设置他们在每个cassandra.yaml的listen_address中看到的IP。
  3. 您可能还想选择其中一个作为种子节点。