感谢您的时间。我试图访问远程Cassandra数据库,以完成我的断言。我看到服务器正在运行: Cassandra V 3.0.8.1293 驱动程序类型:Cassandra CQL 适用于Apache Cassandra的Datastax Java驱动程序 - 核心[3.0.5]
所以,我正在尝试使用以下简单代码来访问数据库
import com.datastax.driver.core.*
Cluster cluster = null;
try {
cluster = Cluster.builder().addContactPoint("x.x.x.x").withCredentials("xxxxxxx", "xxxxxx").withPort(9042).build()
Session session = cluster.connect();
ResultSet rs = session.execute("select * from TABLE");
Row row = rs.one();
} finally {
if (cluster != null) cluster.close();
}
当我使用cassandra-driver-core-2.0.1.jar时,我收到错误:
错误:com.datastax.driver.core.exceptions.NoHostAvailableException:尝试查询的所有主机都失败了(尝试:/x.x.x.x(null))
在这里和其他博客上阅读文档和很多帖子,我看到可能与驱动程序版本不兼容,所以我尝试将驱动程序升级到许多版本(cassandra-driver-core-2.5,cassandra- driver-core-3,cassandra-driver-core-3.2),但是我得到了以下内容:
ERROR:java.lang.ExceptionInInitializerError
还尝试使用JDBC进行连接,但无法使用此线程中提出的配置 SoapUI JDBC connection with Apache Cassandra
实际上我的想法已经不多了。任何人都可以通过向我指出一些教程或任何想法来提出或指出如何实际实现这一点的方向。 非常感谢你
答案 0 :(得分:0)
我认为你没有启用对cassandra的远程访问。
尝试使用以下配置启用远程访问 -
档案路径/etc/cassandra/default.conf/cassandra.yaml
rpc_address: 0.0.0.0
broadcast_rpc_address: <serverIPAddress>
之后,重新启动cassandra服务。