2013-10-15 52 views
6

我有問題想查詢寬行內卡桑德拉1.2.4當我嘗試使用卡桑德拉-CLI查詢行,我得到這個錯誤:thrift_max_message_length_in_mb不承認卡桑德拉

幀大小(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 

但我得到了同樣的錯誤,當我試圖查詢使用卡桑德拉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... 

但在卡桑德拉CLI中的更改不會反映,是它與我們正在使用的版本有問題?

感謝您的幫助

回答

10

最大幀大小需要在客戶機上設置過了,不幸的是硬編碼在卡桑德拉-CLI 15 MB。

一般來說,使用分頁和小消息要比一次查詢大量數據要好得多。你將不得不大幅增加超時才能檢索1 GB的數據,這會產生其他副作用。

不幸的是,cassandra-cli不支持檢索行的一部分。您可以使用cqlsh並使用分頁CQL查詢,或者使用例如CQL快速編寫一些Python代碼。 pycassa將通過列翻頁。

+2

有關如何爲cassandra-cli客戶端設置幀大小的任何想法?無法在網上找到任何信息。 – alecswan