I am having problems trying to query a wide row in Cassandra 1.2.4 When I tried to query the row using the Cassandra-cli, I obtain this error:
Frame size (75209759) larger than max length (15728640)! org.apache.thrift.transport.TTransportException: Frame size (75209759) larger than max length (15728640)! at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137) at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
I tried to change the next configuration parameters in the 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
But I obtain the same error when I tried to query the row using the Cassandra cli.
When I start cassndra in the log appears:
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...
But in the Cassandra cli the change is not reflected, is it a problem with the version that we are using?
Thanks for your help
The max frame size needs to be set on the client too, and unfortunately it is hardcoded to 15 MB in cassandra-cli.
In general, it is much better to use paging and small messages than querying large amounts at once. You would have to significantly increase the timeout to be able to retrieve 1 GB of data and this would have other side effects.
Unfortunately cassandra-cli doesn't support retrieving part of a row. You can use cqlsh and use a paging CQL query or quickly write some python code using e.g. pycassa that would page through the columns.
来源:https://stackoverflow.com/questions/19381778/thrift-max-message-length-in-mb-not-recognized-cassandra