2016-12-16 3 views
0

Ich habe datastax cassandra Service Setup und habe einen Schlüsselbereich erstellt und meine db läuft gut.Konnte keine Verbindung zu Cassandra Cluster auf dem lokalen Host

Below are output from the nodetool status command: 
C:\Users\xxx>cd C:\Program Files\DataStax Community\apache-cassandra\bin 

C:\Program Files\DataStax Community\apache-cassandra\bin>nodetool status 
Datacenter: datacenter1 
======================== 
Status=Up/Down 
|/ State=Normal/Leaving/Joining/Moving 
-- Address Load  Tokens  Owns (effective) Host ID        Rack 
UN 127.0.0.1 229 KB  256   100.0%   d5229669-f8f2-4b06-a887-4ab91a883a74 rack1 


Also , the data is created having a keyspace. 
cqlsh:axiaglobal> use axiaglobal; 
cqlsh:axiaglobal> describe tables; 

greetings 

cqlsh:axiaglobal> select * from greetings; 

user | id | creation_date | greet 
------+----+---------------+------- 

Now when i try to connect to cassandra via Java i get the following exception: 

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /127.0.0.1:9042 (null)) 
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:196) 
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79) 
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1104) 
    at com.datastax.driver.core.Cluster.init(Cluster.java:121) 
    at com.datastax.driver.core.Cluster.connect(Cluster.java:198) 
    at com.datastax.driver.core.Cluster.connect(Cluster.java:226) 
    at com.axia.global.dao.cassandra.service.CassandraApp.main(CassandraApp.java:29) 


Piece of code which makes a call to Cassandra is listed below: 

package com.axia.global.dao.cassandra.service; 

import java.net.InetAddress; 
import java.net.UnknownHostException; 

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 
import org.springframework.data.cassandra.core.CassandraOperations; 
import org.springframework.data.cassandra.core.CassandraTemplate; 

import com.axia.global.model.cassandra.Person; 
import com.datastax.driver.core.Cluster; 
import com.datastax.driver.core.Session; 
import com.datastax.driver.core.querybuilder.QueryBuilder; 
import com.datastax.driver.core.querybuilder.Select; 

public class CassandraApp { 

    private static final Logger LOG = LoggerFactory.getLogger(CassandraApp.class); 

    private static Cluster cluster; 
    private static Session session; 

    public static void main(String[] args) { 

     try { 
     cluster = Cluster.builder().addContactPoints("127.0.0.1").build(); 

     session = cluster.connect("axiaglobal"); 

     CassandraOperations cassandraOps = new CassandraTemplate(session); 

     Select s = QueryBuilder.select().from("greetings"); 


     } catch (Exception e) { 
     e.printStackTrace(); 
     } 

    } 
    } 

vermag ich nicht zu verstehen, wo ich falsch gehe und warum versagt meine Verbindung zu cassandra verbinden kann mir jemand mit ihm helfen?

Ich habe versucht, Folgendes einzurichten: rpc_address: 0.0.0.0 broadcast_rpc_address: 1.2.3.4 und sogar es hat nicht funktioniert.

+0

so können Sie Anfragen von cqlsh laufen? – root545

+1

Stellen Sie sicher, dass Sie die entsprechenden Versionen verwenden. Spring Data Cassandra 1.4.x unterstützt nur Cassandra 2.x, nicht 3.x. – mp911de

+1

Ich war du Ich würde Spring-Daten-Cassandra alle zusammen vermeiden. spring-data-cassandra verwendet implizit und unpassend Dinge wie 'SELECT COUNT (*)' und 'BATCH' hinter den Kulissen. – Aaron

Antwort

Verwandte Themen