thrift_max_message_length_in_mb无法识别卡桑德拉

时间:2013-10-15 12:54:15

标签: cassandra cassandra-cli

我在尝试查询Cassandra 1.2.4中的大行时遇到问题当我尝试使用Cassandra-cli查询行时,我收到此错误:

框架尺寸(75209759)大于最大长度(15728640)! org.apache.thrift.transport.TTransportException:帧大小(75209759)大于最大长度(15728640)!     在org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137)     在org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)

我尝试更改Cassandra.yaml中的下一个配置参数:

# Frame size for thrift (maximum field length).
thrift_framed_transport_size_in_mb: 1024

# The max length of a thrift message, including all fields and
# internal thrift overhead.
thrift_max_message_length_in_mb: 1048

但是当我尝试使用Cassandra cli查询行时,我得到了同样的错误。

当我在日志中启动cassndra时出现:

INFO 14:48:34,133 Using TFramedTransport with a max frame size of 1073741824 bytes.
 INFO 14:48:34,137 Using synchronous/threadpool thrift server on localhost : 9160
 INFO 14:48:34,137 Listening for thrift clients...

但是在Cassandra cli中没有反映出变化,这是我们使用的版本的问题吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:10)

最大帧大小也需要在客户端上设置,不幸的是它在cassandra-cli中被硬编码为15 MB。

通常,使用分页和小消息比一次查询大量消息要好得多。您必须显着增加超时才能检索1 GB的数据,这会产生其他副作用。

不幸的是,cassandra-cli不支持检索部分行。您可以使用cqlsh并使用分页CQL查询或使用例如快速编写一些python代码。将翻阅列的pycassa。