【问题标题】:Java connect to Cassandra NoHostAvailableExceptionJava 连接到 Cassandra NoHostAvailableException
【发布时间】:2017-04-16 01:21:59
【问题描述】:

我的 Java 代码:

public static void main(String[] args) {
    Cluster cluster;
    Session session;

    cluster = Cluster.builder()
                .addContactPoint("127.0.0.1")
                .withPort(9042)
                .build();

    session = cluster.connect("Bundesliga");

    session.execute("INSERT INTO test(c1,c2,c3,c4,c5) VALUES(0,0,0,0,0)");
}

错误信息:

线程“main”中的异常 com.datastax.driver.core.exceptions.NoHostAvailableException:全部 尝试查询的主机失败(尝试:/127.0.0.1:9042 (null))在 com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:196) 在 com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:80) 在 com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1145) 在 com.datastax.driver.core.Cluster.init(Cluster.java:149) 在 com.datastax.driver.core.Cluster.connect(Cluster.java:225) 在 com.datastax.driver.core.Cluster.connect(Cluster.java:258) 在 cassandra.cassandra_main.main(cassandra_main.java:19)

我已经看过cassandra.yaml:

start_native_transport:真

native_transport_port:9042

【问题讨论】:

  • 你确定 cassandra 正在监听本地主机吗?由于 cassandra 集群中的节点必须相互通信,因此它们通常会在外部 IP 地址上打开其端口。
  • 在 cassandra.yaml 中是本地主机上的 listen_adress
  • 你能包含netstat -anp | grep 9042的输出吗?
  • tcp 0 0 0.0.0.0:9042 0.0.0.0:0* LISTEN 3738/java

标签: java database cassandra


【解决方案1】:

我修好了。

问题是,cassandra-driver-core 的版本与 cassandra 版本不兼容。

【讨论】:

    猜你喜欢
    • 2013-09-14
    • 2018-12-30
    • 2019-02-25
    • 2016-05-23
    • 2018-01-18
    • 2015-04-16
    • 2015-10-22
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多