2016-07-24 15 views
1

Meine Betreffzeile könnte sagen, dass es eine doppelte Frage ist, aber ist es nicht. Ich habe alle möglichen Wege versucht, nach diesem Problem zu suchen, aber es ist mir nicht gelungen, mein Problem zu lösen.Keine Verbindung zu Cassandra von Remote-Host

Ich habe Windows 8.1 auf meinem PC ausgeführt. Ich habe Ubuntu 16.04 Version als eine VM installiert, indem ich Hyper-V darauf verwende. Ich habe Cassandra 3.7 auf meinem Ubuntu-System installiert.

Cassandra konnte sich vom localhost aus dem Ubuntu-System verbinden. Ich habe den Schlüsselraum und alles erstellt, aber wenn ich versuche, Casandra von meinem Golang-Code wie unten zu verbinden, bekomme ich einen Fehler.

Paket Haupt

import (
    "fmt" 
    "log" 

    "github.com/gocql/gocql" 
) 

func main() { 
    // connect to the cluster 
    cluster := gocql.NewCluster("192.168.137.217") //Put comma separated IPs in case of multiple cluster 
    cluster.Keyspace = "broker_keyspace" 
    cluster.Consistency = gocql.Quorum 
    session, _ := cluster.CreateSession() 
    defer session.Close() 
} 

192.168.137.217 meine VM ist die IP-Adresse. Der Fehler, den ich bekomme, besagt, dass der 9042-Port keine Verbindung herstellen darf. Diesen Code versuche ich von meinem Windows 8.1 System (welches der Host für die VM ist, auf der Cassandra läuft) auszuführen. Ich habe versucht, Telnet und stellte fest, dass 9042-Port ist nicht offen zu verbinden Host.

Ich begann mit cassandra.yaml Konfigurationsdatei zu spielen, aber jetzt ist es nicht einmal auf Ubuntu-System arbeiten. Ich bin nicht in der Lage den Knotenstatus

nodetool status 

Die gemeinsame config in meiner cassandra.yaml Datei Ich habe ist, wie unten mit zu bekommen.

rpc_address: localhost 
listen_address: localhost 

Ich habe unkommentiert auch die unter der Linie in /etc/cassandra/cassandra-env.sh Datei und die öffentlichen Namen auf 127.0.0.1 aktualisiert.

# add this if you're having trouble connecting: 
JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1" 

ich neu gestartet, die Cassandra Service cassandra Neustart verwenden, aber wenn ich nodetool Status versuche es unten Fehler gibt.

nodetool: Fehler beim Verbinden mit '127.0.0.1:7199' - ConnectException: 'Verbindung verweigert'.

Sorry für die lange Frage, aber bitte helfen Ich bin wirklich satt mit dem Problem, versuchen sehr hart aus letzten 6-7 Stunden.

Dank ..

Antwort

1

Haben Sie nicht versucht, mit localhost und eigentlich für alles, was die 192.168.137.217-Adresse - JMX, rpc, hören etc ..? Wäre das ein Problem? Angenommen, dies ist nur eine dev VM auf Ihrem PC - vielleicht überprüfen Sie, dass die Firewall ausgeschaltet ist?

+0

Dank für die Beantwortung. Ich musste erneut eine neue Cassandra-Version installieren. Ich habe listen_address, broadcast_address zu der IP geändert, die ich erwähnt habe Es fing an zu arbeiten.Sieht aus wie einige Konfigurationsänderungen, die ich gemacht habe, aber es nicht zurückstellen konnte. –

0

Sie können die folgenden Schritte ausführen, um die genannten Probleme zu lösen.

Ändern Sie die folgenden Parameter in cassandra.yaml (etc/cassandra/cassandra.yaml)

- start_rpc: true 
- rpc_address: 0.0.0.0 

und Kommentar-

broadcast_rpc_address: 1.2.3.4