Cassandra-cli cant connect to remote cassandra server

13,303

Solution 1

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.

Solution 2

Cassandra cli uses thrift to connect to Cassandra. The rpc_address decides how the thrift clients can connect to Cassandra. Setting it to 0.0.0.0 will work, but setting it to the hostname of the server and then using the same hostname to connect will also work.

Share:
13,303

Related videos on Youtube

Chander Shivdasani
Author by

Chander Shivdasani

A Programmer in race with the universe. While the universe is busy creating fools, im busy writing complex programs.

Updated on September 15, 2022

Comments

  • Chander Shivdasani
    Chander Shivdasani over 1 year

    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

  • KingOfHypocrites
    KingOfHypocrites about 9 years
    What do you mean other than 0.0.0.0.. what did you set it to?
  • Lewen
    Lewen over 8 years
    In the yaml file, the address is 1.2.3.4 in the comment. I set it to 255.255.255.255, and it works , well... at least for the moment