2016-07-03 15 views
2

連接到Cassandra數據庫並創建密鑰空間時出現以下錯誤。沒有足夠的可讀字節數 - 需要4,最大值爲0

異常線程 「main」> com.datastax.driver.core.exceptions.NoHostAvailableException:
所有主機(S)試了查詢失敗(嘗試:/127.0.0.1:9042
(COM。 datastax.driver.core.ConnectionException:[/127.0.0.1:9042]傳輸初始化期間出現意外錯誤
(com.datastax.driver.core.TransportException:[/127.0.0.1:9042]意外的異常觸發(java.lang。 IndexOutOfBoundsException:沒有足夠的可讀字節 - 需要4,最大值爲0)))

This i我的代碼:

package com.hadoop.reloaded.cassandra; 

import com.datastax.driver.core.*; 

public class CassandraOne { 

    public static void main(String[] args){ 

     Cluster cluster1 = Cluster.builder().withPort(9042).addContactPoint("127.0.0.1").build(); 
     Session session = cluster1.connect(); 
     String query = "CREATE KEYSPACE test WITH replication " 
       + "= {'class':'SimpleStrategy', 'replication_factor':1}; "; 
     session.execute(query); 
     session.execute("USE test"); 

    } 
} 

,當我運行此異常拋出:

Exception in thread "main" com.datastax.driver.core.exceptions.NoHostAvailableException: 
All host(s) tried for query failed (tried: /127.0.0.1:9042 (
    com.datastax.driver.core.ConnectionException: [/127.0.0.1:9042] 
     Unexpected error during transport initialization (
      com.datastax.driver.core.TransportException: [/127.0.0.1:9042] 
       Unexpected exception triggered (java.lang.IndexOutOfBoundsException: Not enough readable bytes - Need 4, maximum is 0)))) 

    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.hadoop.reloaded.cassandra.CassandraOne.main(CassandraOne.java:13) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
+0

您正在使用什麼版本的datastax java驅動程序,以及哪個版本的Cassandra? –

+0

我正在使用Java 1.8和Cassansdra 3.7版本 – AnYa

回答

1

我的猜測

更多細節時,你正在使用一個版本的Datastax Java驅動程序太舊的。請檢查您是否運行3.0.0或更高版本,因爲這是連接到Cassandra 3.X羣集所必需的。

1

我面臨同樣的問題,升級後驅動程序cassandra-driver-core-3.0.3.jar 和netty作爲這張圖片。問題已解決 enter image description here

+0

這解決了這個問題。謝謝。 – AnYa

相關問題