2014-11-07 4 views
8

Mein Java-Code wird wie folgt dar:"All-Host (s) versucht, für die Suche nach fehlgeschlagen" Fehler

import com.datastax.driver.core.Cluster; 
import com.datastax.driver.core.Metadata; 
import com.datastax.driver.core.Session; 

public class CustomerController { 

    public void execute() { 
     Cluster cluster = Cluster.builder() 
       .addContactPoints("172.16.11.126", "172.16.11.130") 
       .withPort(9042) 
       .build(); 
     Session session = cluster.connect(); 
     String command = "drop keyspace if exists bookstore"; 
     session.execute(command); 
     cluster.close(); 
    } 
} 

Wenn ich den Code ausführen, bekomme ich folgende Fehlermeldung:

Exception in thread "main" com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /172.16.11.130 (com.datastax.driver.core.TransportException: [/172.16.11.130] Cannot connect), /172.16.11.126 (com.datastax.driver.core.TransportException: [/172.16.11.126] Cannot connect))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:195)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:78)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1029)
at com.datastax.driver.core.Cluster.init(Cluster.java:120)
at com.datastax.driver.core.Cluster.connect(Cluster.java:197)
at com.pragatisoftware.datastax99.app.CustomerController.execute(CustomerController.java:12)
at com.pragatisoftware.datastax99.app.Application.run(Application.java:10)
at com.pragatisoftware.datastax99.app.Application.main(Application.java:6)

Umweltinformationen :

  • Ubuntu-Rechner
  • Eclipse-Luna
  • Java 1.7
  • Cassandra 2.0.11

In cassandra.yaml:

native_transport_port: 9042 

Cassandra oben (172.16.11.130 und 172.16.11.126) auf beiden IP-Adressen zur Verfügung gestellt läuft und ich bin in der Lage, Verbindung mit CQLSH zu beiden Maschinen herzustellen.

Übrigens, der gleiche Code (mit der entsprechenden IP-Adresse) funktionierte auf einer Windows-Maschine mit Cassandra 2.0.9.

+3

Was ist "cassandra.yaml"? Besonders 'rpc_address' – Chiron

+2

Stellen Sie auch sicher, dass' 'start_native_transport: true'' in Ihrer yaml-Datei steht. –

+1

@Chiron, rpc_address war localhost. Das Ändern auf 0.0.0.0 hat funktioniert. Vielen Dank. – Pradyumn

Antwort

10

Ändern rpc_adresse: 0.0.0.0 broadcast_rpc_adresse: 1.2.3.4 (Sollte nicht 0.0.0.0 sein). für Cassandra Version 2.1.10

Auch für jede weitere Ausgabe lesen Sie cassandra.yaml Datei. Viele Dinge sind selbsterklärend.

+0

arbeitete für mich für 2.1.9 – manish

+0

arbeitete in 2.2.4 auch :) Danke! – PayToPwn

Verwandte Themen