所有主机都尝试了但查询失败了。错误提示。

8

以下是我的Java代码:

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

当我运行代码时,出现以下错误:

异常线程 "main" com.datastax.driver.core.exceptions.NoHostAvailableException: 所有 尝试查询的主机均失败(尝试:/172.16.11.130 (com.datastax.driver.core.TransportException:[/172.16.11.130]无法连接),/172.16.11.126(com.datastax.driver.core.TransportException: [/172.16.11.126]无法连接))
在com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:195)中重新连接
在com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:78)中连接
在com.datastax.driver.core.Cluster$Manager.init(Cluster.java: 1029)
中初始化 在com.datastax.driver.core.Cluster.init(Cluster.java:120)中初始化
在com.datastax.driver.core.Cluster.connect(Cluster.java:197)中连接
在com.pragatisoftware.datastax99.app.CustomerController.execute(CustomerController.java:12)中执行
在com.pragatisoftware.datastax99.app.Application.run(Application.java:10)中运行
在com.pragatisoftware.datastax99.app.Application.main(Application.java:6)中运行

环境信息:
  • Ubuntu 操作系统
  • Eclipse Luna IDE
  • Java 1.7 版本
  • Cassandra 2.0.11 数据库
在cassandra.yaml文件中:
native_transport_port: 9042

Cassandra正在运行在上面提供的两个IP地址(172.16.11.130和172.16.11.126)上,我能够使用CQLSH连接到这两台机器。

顺便说一下,相同的代码(使用相应的IP地址)在Windows机器上运行良好,使用的是Cassandra 2.0.9版本。


3
你的 cassandra.yaml 是什么?特别是 rpc_address 是什么意思? - Chiron
2
同时确保在您的yaml文件中设置start_native_transport: true - Mikhail Stepura
1
@Chiron,rpc_address原本是localhost。将其更改为0.0.0.0即可解决问题。谢谢。 - Pradyumn
1个回答

10

对于Cassandra版本2.1.10,请更改rpc_address为0.0.0.0,broadcast_rpc_address为1.2.3.4(不应为0.0.0.0)。

另外,如果有任何进一步的问题,请查看cassandra.yaml文件。很多东西都是不言自明的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接