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

时间:2016-08-12 12:43:46

标签: java cassandra

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

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

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

org.apache.thrift.transport.TTransportException: Read a negative frame size (-2080374784)!

我在下面添加了库:

Cassandra-jdbc-1.2.5.jar
Cassandra-thrift-1.2.6.jar
Cassandra-clientutil-1.2.6.jar
libthrift-0.9.0.jar

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

DriverManager.getConnection("jdbc:cassandra://10.11.15.242:9042/edgeview");

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

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

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