“尝试查询的所有主机均失败"错误 [英] "All host(s) tried for query failed" Error

查看:25
本文介绍了“尝试查询的所有主机均失败"错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Java代码如下:

My Java code is as follows:

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

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

When I run the code, I get the following error:

线程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)

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)

环境信息:

  • Ubuntu 机器
  • 月蚀月神
  • Java 1.7
  • 卡桑德拉 2.0.11

在 cassandra.yaml 中:

In cassandra.yaml:

native_transport_port: 9042

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

Cassandra is running on both the IP addresses provided above (172.16.11.130 and 172.16.11.126) and I am able to connect using CQLSH to both the machines.

顺便说一下,相同的代码(具有适当的 IP 地址)在 Windows 机器上运行,使用 Cassandra 2.0.9.

By the way, the same code (with the appropriate IP address) worked on a Windows machine, using Cassandra 2.0.9.

推荐答案

更改 rpc_address: 0.0.0.0broadcast_rpc_address: 1.2.3.4 (不应该是0.0.0.0).适用于 Cassandra 版本 2.1.10

Change rpc_address: 0.0.0.0 broadcast_rpc_address: 1.2.3.4 (Should not be 0.0.0.0) . for Cassandra version 2.1.10

对于任何进一步的问题,请阅读 cassandra.yaml 文件.很多事情都是不言自明的.

Also for any further issue read cassandra.yaml file . lot of things are self explanatory.

这篇关于“尝试查询的所有主机均失败"错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆