我的Java代码如下:
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Metadata;
import com.datastax.driver.core.Session;
public class CustomerController {
public void execute() {
Cluster cluster = Cluster.builder()
.addContactPoints("172.16.11.126", "172.16.11.130")
.withPort(9042)
.build();
Session session = cluster.connect();
String command = "drop keyspace if exists bookstore";
session.execute(command);
cluster.close();
}
}
当我运行代码时,我会得到以下错误:
线程"main“com.datastax.driver.core.exceptions.NoHostAvailableException:中的异常所有主机尝试查询失败(尝试: /172.16.11.130 (com.datastax.driver.core.TransportException: /172.16.11.130无法连接),/172.16.11.126 (com.datastax.driver.core.TransportException: /172.16.11.126无法连接)) 在com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:195) 在com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:78) 在com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1029) 在com.datastax.driver.core.Cluster.init(Cluster.java:120) 在com.datastax.driver.core.Cluster.connect(Cluster.java:197) 在com.pragatisoftware.datastax99.app.CustomerController.execute(CustomerController.java:12) 在com.pragatisoftware.datastax99.app.Application.run(Application.java:10) 在com.pragatisoftware.datastax99.app.Application.main(Application.java:6)
环境信息:
在cassandra.yaml中:
native_transport_port: 9042
Cassandra运行在上面提供的两个IP地址上(172.16.11.130和172.16.11.126),我能够使用CQLSH连接到这两台机器。
顺便说一下,使用Cassandra 2.0.9在Windows机器上使用相同的代码(具有适当的IP地址)。
发布于 2015-10-18 23:52:44
更改rpc_address: 0.0.0.0 broadcast_rpc_address: 1.2.3.4 (不应为0.0.0.0)。关于Cassandra版本2.1.10
对于任何进一步的问题,请阅读cassandra.yaml文件。很多事情都是不言而喻的。
https://stackoverflow.com/questions/26795479
复制相似问题