我正在尝试在Windows环境下将Cassandra与Java连接。以下是application / 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连接时,我在stacktrace中得到以下错误。
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上的解决方案,但未能解决我的问题。
是否有人为此查询提供了一些解决方案?
答案 0 :(得分:0)
请检查你的rpc_address。我建议把rpc_address = 0.0.0.0 和broadcast_rpc_address = 监听地址可以为空白或机器IP
答案 1 :(得分:0)
从您的堆栈跟踪中,我怀疑您使用的是非常旧版本的Java驱动程序,可能是1.x系列中的某个版本(1.0.1?)。尝试使用最新的3.0.0版本,看看错误是否仍然存在。
答案 2 :(得分:0)
我发现了问题,我使用了很多第三方库运行了一个项目的代码,其中一个导致了错误(我还不知道哪一个)。我替换了整个jar文件并解决了问题。转到以下URL并根据您正在使用的cassandra版本下载Java驱动程序jar文件。 http://docs.datastax.com/en/developer/driver-matrix/doc/javaDrivers.html#java-drivers