org.apache.thrift.transport.TTransportException:读取负帧大小(-2080374784)!

Sne*_*haT 3 java cassandra

我正在尝试使用JDBC驱动程序连接到Cassandra DB:

Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
Connection con = DriverManager.getConnection("jdbc:cassandra://10.11.15.242:9042/edgeview");
Run Code Online (Sandbox Code Playgroud)

我无法连接到Cassandra.它总是给出以下错误:

org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!
Run Code Online (Sandbox Code Playgroud)

我在下面添加了库:

Cassandra-jdbc-1.2.5.jar
Cassandra-thrift-1.2.6.jar
Cassandra-clientutil-1.2.6.jar
libthrift-0.9.0.jar
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

Aar*_*ron 5

DriverManager.getConnection("jdbc:cassandra://10.11.15.242:9042/edgeview");
Run Code Online (Sandbox Code Playgroud)

因此,9042是本机二进制协议连接的端口,9160是Thrift的端口.

您需要确定是通过Thrift还是Native连接,并使用适当的端口.鉴于您的错误消息,它听起来像JDBC Cassandra使用Thrift,因此您可能需要指定9160作为您的端口.

当然,通过Thrift连接已被弃用,默认情况下甚至在Cassandra 2.2+中禁用.