Cassandra中的NoHostAvailableException

时间:2017-11-17 17:09:54

标签: java cassandra

我需要为课程做一个演示+连接到cassandra。在经历了相当大的麻烦之后,我留下了其他类型的错误,但是我被困在这里,似乎没有得到Keyspace的地址。

getQueryDefinitionCriteria

如果有人可以确定错误在哪里,我会很高兴,我认为我的yaml文件是正确的。当代码到达addcontactpoint上的localhost时,我收到错误:"所有尝试查询的主机都失败了#34;。 在.getError之后,我得到一个" TransportException"。我不知道如何继续前进。

3 个答案:

答案 0 :(得分:1)

将cassandra.yaml中的rpc_broadcast_address更新为有效的IP;因为rpc_address是0.0.0.0。然后在重新启动Cassandra后尝试通过Java与该IP连接。

https://docs.datastax.com/en/developer/java-driver/3.3/manual/address_resolution/

答案 1 :(得分:0)

我在评论中查看了yaml文件。首先rpc_address是错误的,它不应该是0.0.0.0。但你已经修好了。

下一个错误是您设置native_transport_port:9042和rpc_port:9042。您不能为两个接口使用相同的端口。 Thrift(rpc)是旧接口,不应该真正使用,所以如果我在哪里设置start_rpc:false,但当然更改端口就足够了。点击此处了解更多信息:https://academy.datastax.com/planet-cassandra/making-the-change-from-thrift-to-cql

如果您再收到任何错误,请通知我,我会更新答案。

答案 2 :(得分:0)

您的应用程序使用的是什么版本的JDBC驱动程序? 如果您使用的是不兼容的驱动程序,也会发生该错误。

检查您是否有与Cassandra 3.11兼容的驱动程序 (版本3.x及更高版本)

https://docs.datastax.com/en/developer/driver-matrix/doc/javaDrivers.html