Подключение к удаленной базе данных Cassandra через Eclipse

1

База данных 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:

  • апач-Кассандра 0.8.4.jar
  • апач-Кассандра CQL-1.0.3.jar
  • апач-Кассандра бережливость-0.8.4.jar
  • casssandra-clientutil-1.2.1.jar
  • Кассандры-1.2.5.jar JDBC
  • Обще-Ланг-2.4.jar
  • гуавы-r08.jar
  • libthrift-0.6.jar
  • log4j-1.2.16.jar
  • SLF4J-log4j12-1.6.1.jar
  • slf4j.api-1.6.1.jar

Я также отключил брандмауэр в удаленном месте, где установлена 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, которые были добавлены извне

Пожалуйста, дайте мне знать, где я ошибаюсь

  • 2
    И вы можете подключиться с обычным клиентом CSQL? Кроме того, я бы, вероятно, обновил ваши фляги кассандры, чтобы они лучше подходили к серверу.
  • 1
    Привет, спасибо за ответ. Я еще не пробовал с обычным клиентом csql. Кроме того, я протестировал множество комбинаций банок с кассандрой, но, к сожалению, не смог подключиться.
Теги:
cassandra
jdbc

2 ответа

1

Драйвер JDBC очень старый. Вы должны использовать новый собственный драйвер Java, который вы можете получить здесь.

  • 0
    Спасибо за ответ, попробую с новым родным драйвером java. Также я хотел спросить, будет ли лучше исследовать Java-клиент CQL hector для cassandra?
  • 2
    Нет, используйте родной драйвер от DataStax. Hector - это более старый Thrift-клиент, тогда как собственный драйвер использует новый двоичный протокол и поддерживает все новые функции.
Показать ещё 3 комментария
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();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню