【问题标题】:error on /127.0.0.1 connection (com.datastax.driver.core.TransportException: [/127.0.0.1] Unexpected exception triggered), no more host to try/127.0.0.1 连接出错(com.datastax.driver.core.TransportException: [/127.0.0.1] 触发了意外异常),没有更多主机可尝试
【发布时间】:2016-05-17 05:14:27
【问题描述】:

我正在尝试在 Windows 环境下将 Cassandra 与 Java 连接起来。以下是应用程序/OS/lib 版本。

-Windows 7
-Java 7
-Cassandra 2.1.12

代码:

Cluster clst;
Session ses;
clst= Cluster.builder().addContactPoint("127.0.0.1").withPort(9042).build();

Cassandra 和 nodetool 正在运行。下面是nodetool的状态。

C:\Program Files\DataStax Community\apache-cassandra\bin>nodetool -h localhost status
Starting NodeTool
Datacenter: datacenter1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens  Owns    Host ID                               Rack
UN  127.0.0.1  245.99 KB  256     ?       61c6b0e5-2f83-4bc9-9b86-6507e2f06dfc  rack1

Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
C:\Program Files\DataStax Community\apache-cassandra\bin>

当我尝试将 cassandra 与 localhost/127.0.01 连接时,我在堆栈跟踪中遇到错误。

19:19:05.996 [main] DEBUG c.d.driver.core.ControlConnection - [Control connection] Refreshing node list and token map
19:19:06.465 [main] DEBUG c.d.driver.core.ControlConnection - [Control connection] error on /127.0.0.1 connection (com.datastax.driver.core.TransportException: [/127.0.0.1] Unexpected exception triggered), no more host to try
19:19:06.469 [main] DEBUG com.datastax.driver.core.Cluster - Shutting down
Exception in thread "main" com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: [/127.0.0.1])
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:162)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:83)
    at com.datastax.driver.core.Cluster$Manager.<init>(Cluster.java:516)
    at com.datastax.driver.core.Cluster$Manager.<init>(Cluster.java:473)
    at com.datastax.driver.core.Cluster.<init>(Cluster.java:65)
    at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:93)
    at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:458)
    at cass.Cass.main(Cass.java:16)
Java Result: 1

我也尝试在其他网站上找到有关 stackoverflow 的解决方案,但未能解决我的问题。

有人有这个查询的解决方案吗?

【问题讨论】:

  • 9042 是正确的端口号吗?
  • 您使用的是什么版本的 Java datastax 驱动程序?
  • 并确保在 cassandra.yaml 中设置了 start_native_transport: true
  • @cricket_007 端口号正确。
  • @DBug 值在 cassandra.yaml 中设置为 true

标签: java cassandra cqlsh nodetool


【解决方案1】:

请检查您的 rpc_address。我建议把 rpc_address= 0.0.0.0 和广播_rpc_address= 监听地址可以为空或机器IP

【讨论】:

  • 仍然无法正常工作......同样的问题。我在 win 和 linux m 上都试过了,都遇到了同样的问题。
  • cluster = Cluster.builder().addContactPoint(IP 地址).withPort(9042).build();使用 IP 地址而不是 127.0.0.1
  • 你能登录cqlsh吗?
  • 是的,cqlsh 正在破坏在 linux 终端上使用 cqlsh 命令。 cqlsh 也在 windows 上运行。
  • Cluster clst=Cluster.builder().addContactPoint(IP).withPort(9042).build();
【解决方案2】:

从您的堆栈跟踪中,我怀疑您使用的是非常旧的 Java 驱动程序版本,可能是 1.x 系列(1.0.1?)的某个版本。尝试使用最新的 3.0.0 版本,看看错误是否仍然存在。

【讨论】:

  • 你能分享我可以下载最新驱动程序的链接吗?
【解决方案3】:

我发现了问题,我正在使用许多第三方库运行项目中的代码,其中一个导致错误(我还不知道是哪一个)。我替换了整个jar文件并解决了问题。转到以下 url 并根据您使用的 cassandra 版本下载 Java 驱动程序 jar 文件。 http://docs.datastax.com/en/developer/driver-matrix/doc/javaDrivers.html#java-drivers

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2015-06-05
    • 2020-06-06
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多