Dasastax Кассандра Java NoHostAvailableException

Была свежая установка Apache Cassandra версии 3.7

Установка прошла успешно, и я мог получить доступ к cqlsh без каких-либо проблем.

[dpmuser @ LOGDPM01 bin] $ cqlsh подключен к тестовому кластеру по адресу 127.0.0.1:9042. [cqlsh 5.0.1 | Кассандра 3.7 | CQL spec 3.4.2 | Собственный протокол v4]

Но когда я пытаюсь подключиться через клиент DataStax Cassandra, я сталкиваюсь с NoHostAvailableException .

Вот пример кода, который я попробовал

import com.datastax.driver.core.*;
public class DBHitTEst {
public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    Session session = null; 
    Cluster cluster = Cluster.builder()
            .addContactPoints("127.0.0.1").withPort(9042)
            .build();
    System.out.println("Connecting to cluster ...");
    session = cluster.connect();
    System.out.print("Connected !"+session);
}}

Исключение в консоли показано ниже.

SLF4J: Не удалось загрузить класс "org.slf4j.impl.StaticLoggerBinder". SLF4J: По умолчанию используется логгер без операций (NOP). SLF4J: Для получения дополнительной информации см. http://www.slf4j.org/codes.html. Подключение к кластеру... 10 августа 2017 г. 7:58:23 io.netty.channel.ChannelInitializer channelRegistered ПРЕДУПРЕЖДЕНИЕ: не удалось инициализировать канал. Закрытие: [id: 0x7d2724c5] java.lang.NoSuchMethodError: io.netty.util.AttributeKey.valueOf(Ljava/lang/String;)Lio/netty/util/AttributeKey; в com.datastax.driver.core.Message.(Message.java:39) в com.datastax.driver.core.Connection$Initializer.initChannel(Connection.java:1425) .,, Исключение в потоке "main" com.datastax.driver.core.exceptions. NoHostAvailableException: все хосты, для которых был выполнен запрос на сбой (попытался: /127.0.0.1:9042 (com.datastax.driver.core.exceptions.TransportException: [/127.0.0.1:9042] Не удается подключиться)) в com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:232) по адресу com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79) по адресу com.datastax.driver.core.Cluster$Manager.negotiateProtocolVersionAndConnect(ConnectCound) (Java:1600) в com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1518) в com.datastax.driver.core.Cluster.init(Cluster.java:159) в com.datastax.driver.core.Cluster.connectAsync(Cluster.java:330) в com.datastax.driver.core.Cluster.connectAsync(Cluster.java:305) в com.datastax.driver.core.Cluster.connect(Cluster.java:247) на com.cassandra.db.executables.DBHitTEst.main(DBHitTEst.java:14)

Библиотеки Ссылки

cassandra-driver-core-3.3.0.jar
guava-23.0.jar
log4j-api-2.8.2.jar
metrics-core-3.0.2.jar
netty-all-4.0.9.Final.jar
slf4j-api-1.7.25.jar

Важные конфиги это cassandra.yaml

start_rpc: false
start_native_transport: true
native_transport_port: 9042
rpc_address: localhost
rpc_port: 9160
listen_address: localhost
seeds: "127.0.0.1"

Другие особенности системы

[dpmuser@LOGDPM01 conf]$ hostname
LOGDPM01

[dpmuser@LOGDPM01 conf]$ more /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

[dpmuser@LOGDPM01 conf]$ ping LOGDPM01
PING LOGDPM01 (10.0.2.15) 56(84) bytes of data.
64 bytes from LOGDPM01 (10.0.2.15): icmp_seq=1 ttl=64 time=0.055 ms

Запуск Centos VM. Пожалуйста, дайте мне знать, где я не прав?

1 ответ

Несоответствие библиотеки выдает предупреждение, которое я заметил в консоли.

ВНИМАНИЕ: Не удалось инициализировать канал. Закрытие: [id: 0x7d2724c5] java.lang.NoSuchMethodError: io.netty.util.AttributeKey.valueOf(Ljava/lang/String;)Lio/netty/util/AttributeKey; в com.datastax.driver.core.Message.(Message.java:39) в com.datastax.driver.core.Connection$Initializer.initChannel(Connection.java:1425) .,,

При выборе правильных библиотек из папки lib Cassandra установка напрямую разрешила проблему.

Другие вопросы по тегам