Cassandra-cli cant connect to remote cassandra server

Chander Shivdasani picture Chander Shivdasani · Jul 25, 2012 · Viewed 13.2k times · Source

I have a cassandra server running on a server(serv1). cassandra-cli can connect to it when run on serv1. However, when i try to connect to it through some other server(serv2), i get the following exception:

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.

I looked in cassandra.yaml and found that the property "listen_address" is configured to "localhost" and using 0.0.0.0 is severely discouraged. I tried to change localhost to serv2, ip address of serv1 but nothing worked. Even commenting out didnt help.

Is there a way i can make my cassandra server listen on all the ip's without using 0.0.0.0

Answer

Chander Shivdasani picture Chander Shivdasani · Jul 26, 2012

I was able to solve the problem as following:

  1. changing the rpc_address property in cassandra.yaml to 0.0.0.0 instead of localhost.
  2. set the broadcast_rpc_address property in cassandra.yaml to a value other than 0.0.0.0

Then I can access.