База данных Cassandra установлена на серверной машине со следующими конфигурациями: cqlsh 4.1.1 | Cassandra 2.0.7.31 | CQL spec 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();
}
}
}
Я также добавил следующие файлы jar в мой путь сборки eclipse:
Я также отключил брандмауэр в удаленном месте, где установлена cassandra
Но, несмотря на это, я получаю сообщение об ошибке:
Исключение в потоке "main" org.apache.cassandra.cql.jdbc.DriverResolverException: java.net.ConnectException: соединение отклонено: подключитесь к org.apache.cassandra.cql.jdbc.CassandraConnection. (CassandraConnection.java:91) в org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:86) в java.sql.DriverManager.getConnection (Неизвестный источник) в java.sql.DriverManager.getConnection (Неизвестный источник) в cassandraConnectivity.connect.main( connect.java:15)
Также он не может найти источник для вышеупомянутых файлов jar, которые были добавлены извне
Пожалуйста, дайте мне знать, где я ошибаюсь
Драйвер JDBC очень старый. Вы должны использовать новый собственный драйвер Java, который вы можете получить здесь.
Вы можете использовать установленный драйвер - что-то вроде 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();