datastax cassandra java NoHostAvailableException

时间:2017-08-10 12:20:56

标签: cassandra connection datastax java-api

重新安装了Apache Cassandra 3.7版

安装成功,我可以在没有任何问题的情况下访问cqlsh。

  

[dpmuser @ LOGDPM01 bin] $ cqlsh   在127.0.0.1:9042连接到测试群集。   [cqlsh 5.0.1 |卡桑德拉3.7 | CQL规范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#StaticLoggerBinder。   连接群集......   2017年8月10日上午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)       at com.datastax.driver.core.Cluster $ Manager.negotiateProtocolVersionAndConnect(Cluster.java:1600)       在com.datastax.driver.core.Cluster $ Manager.init(Cluster.java:1518)       在com.datastax.driver.core.Cluster.init(Cluster.java:159)       at 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.Kindly让我知道我错在哪里?

1 个答案:

答案 0 :(得分:0)

图书馆不匹配正在抛出我在控制台中发现的警告。

  

警告:无法初始化频道。结束:[id:0x7d2724c5] java.lang.NoSuchMethodError:io.netty.util.AttributeKey.valueOf(Ljava / lang / String;)Lio / netty / util / AttributeKey; at com.datastax.driver.core.Message。(Message.java:39)at com.datastax.driver.core.Connection $ Initializer.initChannel(Connection.java:1425)。 。 。

从Cassandra安装的lib文件夹中选择正确的库时,直接对问题进行了排序。