2013-10-15 8 views
6

Ho problemi cercando di interrogare un'ampia riga Cassandra 1.2.4 Quando ho cercato di interrogare la riga utilizzando la Cassandra-cli, ottengo questo errore:thrift_max_message_length_in_mb non riconosciuto Cassandra

Telaio (75.209.759) maggiore della lunghezza massima (15728640)! org.apache.thrift.transport.TTransportException: dimensione frame (75209759) superiore alla lunghezza massima (15728640)! a org.apache.thrift.transport.TFramedTransport.readFrame (TFramedTransport.java:137) a org.apache.thrift.transport.TFramedTransport.read (TFramedTransport.java:101)

Ho provato a cambiare il prossimo parametri di configurazione nel 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 

Ma ottengo lo stesso errore quando ho cercato di interrogare la riga utilizzando la cli Cassandra.

Quando inizio cassndra nel registro appare:

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... 

Ma nel Cassandra cli il cambiamento non si riflette, si tratta di un problema con la versione che stiamo utilizzando?

Grazie per il vostro aiuto

risposta

10

La dimensione massima telaio deve essere impostato sul client troppo, e purtroppo è hardcoded a 15 MB a cassandra-cli.

In generale, è molto meglio utilizzare paging e messaggi di piccole dimensioni piuttosto che eseguire query su grandi quantità contemporaneamente. Dovresti aumentare significativamente il timeout per poter recuperare 1 GB di dati e questo avrebbe altri effetti collaterali.

Purtroppo cassandra-cli non supporta il recupero di una parte di riga. È possibile utilizzare cqlsh e utilizzare una query CQL di paginazione o scrivere rapidamente un codice Python utilizzando ad es. pycassa che avrebbe sfogliato le colonne.

+2

Qualche idea su come impostare la dimensione del frame per il client cassandra-cli? Non riesci a trovare alcuna informazione su questo online. – alecswan