thrift_max_message_length_in_mb无法识别卡桑德拉

ftr*_*llo 6 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
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用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...
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助

Ric*_*ard 10

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

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

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

  • 有关如何为cassandra-cli客户端设置帧大小的任何想法?在网上找不到任何关于此的信息. (2认同)