java - Cassandra 连接失败

标签 java maven ubuntu cassandra telnet

错误是

Exception in thread "main" com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /172.17.1.XX:9160 (com.datastax.driver.core.TransportException: [/172.17.1.XX:9160] Cannot connect))
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:196)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:80)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1145)
    at com.datastax.driver.core.Cluster.getMetadata(Cluster.java:313)
    at com.example.cassandra.Client.connect(Client.java:18)
    at com.example.cassandra.Client.main(Client.java:74)

datastax的版本是dse 4.5.2

发生错误的行是connect(node)

   cluster = Cluster.builder().addContactPoint(node).withPort(9160).build();
   Metadata metadata = cluster.getMetadata(); //Error at this line

调用该函数是

     public static void main(String a[])
     {
       System.out.println("I am in");
       Client client = new Client();
       client.connect("172.17.1.XX");
       client.close();
     }

pom.xml 是

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.cassandra</groupId>
<artifactId>simple-client</artifactId>
<packaging>jar</packaging>
<version>0.1.0</version>

<dependencies>
  <dependency>
   <groupId>com.datastax.cassandra</groupId>
   <artifactId>cassandra-driver-core</artifactId>
   <version>2.1.0</version>
  </dependency>
<dependency>
  <groupId>org.apache-extras.cassandra-jdbc</groupId>
  <artifactId>cassandra-jdbc</artifactId>
  <version>1.2.5</version>
  </dependency>
</dependencies>

<build>
   <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.3.2</version>
      <configuration>
        <mainClass>com.example.cassandra.Client</mainClass>
      </configuration>
    </plugin>
     <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
     </plugins>
   </build>
  </project>

我推荐了this link

然后我尝试了

 telnet 172.17.1.XX 9160

 Trying 172.17.1.XX...
 Connected to 172.17.1.XX.
 Escape character is '^]'.

如果我输入一些内容,它会显示连接被外部代理关闭

 netstat -plten 

172.17.1.XX

shows 

 tcp        0      0 127.0.0.1:8984          0.0.0.0:*               LISTEN      0          73148094    19145/java
 tcp        0      0 127.0.0.1:7000          0.0.0.0:*               LISTEN      0          73148635    19145/java
 tcp        0      0 0.0.0.0:7199            0.0.0.0:*               LISTEN      0          73148631    19145/java
 tcp        0      0 0.0.0.0:50370           0.0.0.0:*               LISTEN      0          73148632    19145/java
 tcp        0      0 0.0.0.0:9160            0.0.0.0:*               LISTEN      0          73148104    19145/java
 tcp        0      0 0.0.0.0:33935           0.0.0.0:*               LISTEN      0          73148630    19145/java
 tcp        0      0 0.0.0.0:9042            0.0.0.0:*               LISTEN      0          73148103    19145/java
 tcp        0      0 0.0.0.0:8983            0.0.0.0:*               LISTEN      0          73148083    19145/java

那么我该如何解决这个问题呢?有什么解决办法吗?

最佳答案

您连接到了错误的端口:Java 驱动程序连接到 native 端口(通常为 9042),而不是 Thrift 端口(通常为 9160)。更改此行

cluster = Cluster.builder().addContactPoint(node).withPort(9042).build();

关于java - Cassandra 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28762262/

相关文章:

java - "Open file..."对话框无法关闭

java - 在源代码不可用的情况下实现访问者模式

database - 构建后保持 Derby Network Server 运行

java - 如果 WebAppContext 无法启动,如何取消启动或关闭 jetty

java - SBT 运行 scala 和 java 之间的差异?

java - Eclipse、Maven 和代码覆盖率

spring - 为 Tomcat 构建的 Maven WAR : "Could not open ServletContext resource [/WEB-INF/applicationContext.xml]"

linux - 良好的Gnome/kde/主题开发主题/环境?

c++ - ubuntu 上 libpq header 的 "standard"位置?

python - 在 Ubuntu 上的 virtualenv 中为 matplotlib 安装 python tk