Cassandra数据库已安装在具有以下配置的服务器计算机上: cqlsh 4.1.1 | Cassandra 2.0.7.31 | CQL规范3.1.1 |节俭协议19.39.0
我想连接一个密钥空间说" X"通过eclipse通过java。
以下是我的代码:
package cassandraConnectivity;
import java.sql.DriverManager;
import java.sql.SQLException;
public class connect{
public static java.sql.Connection con = null;
public static void main(String[] a)throws ClassNotFoundException, SQLException{
try {
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
con=DriverManager.getConnection("jdbc:cassandra:username/pswd@<IP>/<KS>");
System.out.println("cassandra connection established");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我还在我的eclipse构建路径中添加了以下jar文件:
我还在安装cassandra的远程位置禁用了防火墙
但尽管如此,我收到了一个错误:
线程中的异常&#34; main&#34; org.apache.cassandra.cql.jdbc.DriverResolverException: java.net.ConnectException:拒绝连接:connect at org.apache.cassandra.cql.jdbc.CassandraConnection。(CassandraConnection.java:91) 在 org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:86) 在java.sql.DriverManager.getConnection(未知来源)at java.sql.DriverManager.getConnection(未知来源)at cassandraConnectivity.connect.main(connect.java:15)
此外,它无法找到外部添加的上述jar文件的来源
请让我知道我哪里出错了
答案 0 :(得分:1)
JDBC驱动程序非常陈旧。您应该使用新的本机Java驱动程序,您可以获得here。
答案 1 :(得分:0)
您可能想要使用已建立的驱动程序 - 例如Astyanax:https://github.com/Netflix/astyanax
入门页面有一些非常简单的例子:
AstyanaxContext<Keyspace> context = new AstyanaxContext.Builder()
.forCluster("ClusterName")
.forKeyspace("KeyspaceName")
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)
)
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool")
.setPort(9160)
.setMaxConnsPerHost(1)
.setSeeds("127.0.0.1:9160")
)
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());
context.start();
Keyspace keyspace = context.getClient();