Cassandra-cli无法连接到远程Cassandra服务器。

9

我有一个运行在服务器(serv1)上的cassandra服务器。当在serv1上运行时,cassandra-cli可以连接到它。然而,当我尝试通过其他服务器(serv2)连接它时,我会得到以下异常:

org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused
    at org.apache.thrift.transport.TSocket.open(TSocket.java:183)
    at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81)
    at org.apache.cassandra.cli.CliMain.connect(CliMain.java:80)
    at org.apache.cassandra.cli.CliMain.main(CliMain.java:256)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at org.apache.thrift.transport.TSocket.open(TSocket.java:178)
    ... 3 more
Exception connecting to jckstore/9160. Reason: Connection refused.

我查看了cassandra.yaml文件,发现"listen_address"属性配置为"localhost",强烈不建议使用0.0.0.0。我尝试将localhost更改为serv2或serv1的IP地址,但都没有成功。即使注释掉该行也无效。

有没有一种方法可以让我的Cassandra服务器在不使用0.0.0.0的情况下监听所有IP地址?

6个回答

12
我按照以下步骤解决了问题:
  1. 将cassandra.yaml文件中的rpc_address属性从localhost更改为0.0.0.0。
  2. 将cassandra.yaml文件中的broadcast_rpc_address属性设置为非0.0.0.0的值。
然后我就可以访问了。

1
除了0.0.0.0之外,你设置的是什么? - KingOfHypocrites
在yaml文件中,注释中的地址是1.2.3.4。我将其设置为255.255.255.255,并且它有效,至少目前是这样的。 - Lewen

4

Cassandra cli使用Thrift连接Cassandra。rpc_address决定了Thrift客户端如何连接Cassandra。将其设置为0.0.0.0将有效,但将其设置为服务器的主机名,然后使用相同的主机名进行连接也可以。


0

我遇到了相同的问题。我通过将snappy临时目录VM选项更新为正确的目录来解决了这个问题。

VM_OPTS="$JVM_OPTS -Dorg.xerial.snappy.tempdir=/home/users/local/user/cassandra_home/snap

希望这能帮到你!


0

我也遇到了同样的问题,“连接被拒绝”。将 start_rpc: 改为 true,问题得以解决。


0

我也遇到了同样的问题“连接被拒绝”。将rpc_address从“localhost”更改为与listen_address相同的主机名对我有用。


0

我也遇到了同样的问题,一直感到惊讶,因为它已经正确配置了。最后,我发现这是权限问题:

chown -R cassandra: /var/lib/cassandra
chown -R cassandra: /var/log/cassandra

希望这有所帮助 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接