2012-07-25 18 views
9

Ho un server Cassandra in esecuzione su un server (serv1). cassandra-cli può connettersi ad esso quando viene eseguito su serv1. Tuttavia, quando provo a connettersi ad esso attraverso qualche altro server (Serv2), ottengo la seguente eccezione:Cassandra-cli non può connettersi al server Cassandra remoto

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. 

ho guardato in cassandra.yaml e ha scoperto che la proprietà "listen_address" è configurato per "localhost" e l'utilizzo di 0.0.0.0 è fortemente scoraggiato. Ho provato a cambiare localhost a serv2, indirizzo IP di serv1 ma non ha funzionato. Anche commentare non ha aiutato.

c'è un modo posso fare il mio server Cassandra ascolto su tutti gli ip di senza utilizzare 0.0.0.0

risposta

12

sono stato in grado di risolvere il problema come segue:

  1. modifica della proprietà rpc_address in cassandra .yaml a 0.0.0.0 invece di localhost.
  2. impostare la proprietà broadcast_rpc_address in cassandra.yaml ad un valore diverso da 0.0.0.0

Allora posso accedere.

+1

Cosa intendi a parte di 0.0.0.0 .. a cosa hai impostato? – KingOfHypocrites

+0

Nel file yaml, l'indirizzo è 1.2.3.4 nel commento. L'ho impostato su 255.255.255.255 e funziona, beh ... almeno per il momento – Lewen

4

Cassandra cli usa parsimonia per connettersi a Cassandra. Rpc_address decide in che modo i client di risparmio possono connettersi a Cassandra. Impostandolo su 0.0.0.0 funzionerà, ma funzionerà anche impostandolo sul nome host del server e utilizzando lo stesso hostname per la connessione.

0

Ho anche avuto lo stesso problema e sono rimasto costantemente sorpreso perché era configurato correttamente. Alla fine, ho scoperto che era problemi di autorizzazione:

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

Speranza che aiuta :-)

0

Ho avuto lo stesso problema. Ho risolto questo problema aggiornando l'opzione VM temporanea snappy temp per puntare alla directory giusta.

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

Spero che questo aiuti!

0

Ho anche avuto lo stesso problema "Connessione rifiutata". Cambiando il rpc_address da "localhost" allo stesso hostname come listen_address ha funzionato per me.

0

Ho avuto anche lo stesso problema "Connessione rifiutata". Cambiando start_rpc: true è stato corretto per me.

Problemi correlati