【发布时间】:2015-01-03 21:42:31
【问题描述】:
我的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)
环境信息:
- Ubuntu 机器
- 日食月神
- Java 1.7
- 卡桑德拉 2.0.11
在 cassandra.yaml 中:
native_transport_port: 9042
Cassandra 在上面提供的两个 IP 地址(172.16.11.130 和 172.16.11.126)上运行,我可以使用 CQLSH 连接到这两台机器。
顺便说一句,相同的代码(具有适当的 IP 地址)在使用 Cassandra 2.0.9 的 Windows 机器上运行。
【问题讨论】:
-
你是什么
cassandra.yaml?特别是rpc_address -
还要确保
start_native_transport: true在您的 yaml 文件中。 -
@Chiron,rpc_address 是本地主机。将其更改为 0.0.0.0 有效。谢谢。
标签: cassandra datastax-java-driver