2014-11-07 19 views
8
đang

My Java như sau:"Tất cả các máy chủ (s) đã cố gắng cho truy vấn thất bại" Lỗi

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(); 
    } 
} 

Khi tôi chạy mã, tôi nhận được lỗi sau:

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)

thông tin Môi trường :

máy
  • Ubuntu
  • Eclipse Luna
  • Java 1,7
  • Cassandra 2.0.11

Trong cassandra.yaml:

native_transport_port: 9042 

Cassandra đang chạy trên cả các địa chỉ IP được cung cấp trên (172.16.11.130 và 172.16.11.126) và tôi có thể kết nối bằng CQLSH cho cả hai máy.

Nhân tiện, cùng một mã (với địa chỉ IP thích hợp) hoạt động trên máy Windows, sử dụng Cassandra 2.0.9.

+3

Bạn là gì 'cassandra.yaml'? Đặc biệt 'rpc_address' – Chiron

+2

Cũng đảm bảo' 'start_native_transport: true'' trong tệp yaml của bạn. –

+1

@Chiron, rpc_address là localhost. Thay đổi điều đó thành 0.0.0.0 đã hoạt động. Cảm ơn. – Pradyumn

Trả lời

10

Thay đổi rpc_address: 0.0.0.0 broadcast_rpc_address: 1.2.3.4 (Không được 0.0.0.0). cho phiên bản Cassandra 2.1.10

Ngoài ra, đối với bất kỳ vấn đề nào khác, hãy đọc tệp cassandra.yaml. nhiều thứ tự giải thích.

+0

đã làm việc cho tôi cho 2.1.9 – manish

+0

cũng hoạt động trong 2.2.4 :) Cảm ơn! – PayToPwn

Các vấn đề liên quan