我在尝试查询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中没有反映出变化,这是我们使用的版本的问题吗?
感谢您的帮助
答案 0 :(得分:10)
最大帧大小也需要在客户端上设置,不幸的是它在cassandra-cli中被硬编码为15 MB。
通常,使用分页和小消息比一次查询大量消息要好得多。您必须显着增加超时才能检索1 GB的数据,这会产生其他副作用。
不幸的是,cassandra-cli不支持检索部分行。您可以使用cqlsh并使用分页CQL查询或使用例如快速编写一些python代码。将翻阅列的pycassa。