2014-04-14 13 views
8

Cassandra DB ile IntellyJ'de bir java projem var ve Maven 3 ve Java 7 kullanıyorum. Cassandra version 2.0.6. Yaklaşık 100.000 satırlık bir tablom var. Zaten java 6 ile Tutulma Cassandra 1.2.8 kullanıyordumjava.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Maksimum uzunluktan büyük çerçeve boyutu (16384000)!

java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: Frame size (16858796) larger than max length (16384000)! 
at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:197) 
at org.apache.cassandra.cql.jdbc.CassandraStatement.executeQuery(CassandraStatement.java:229) 
at ir.categorization.methods.featureselection.DBFeatureSelection.getFeatures(DBFeatureSelection.java:102) 
at ir.categorization.methods.test.Classifier.setFeatures(Classifier.java:67) 
at ir.categorization.methods.test.Classifier.<init>(Classifier.java:50) 
at ir.categorization.methods.test.ClassifierTest.main(ClassifierTest.java:105) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 
Caused by: org.apache.thrift.transport.TTransportException: Frame size (16858796) larger than max length (16384000)! 
at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:137) 
at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) 
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) 
at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:362) 
at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:284) 
at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:191) 
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) 
at org.apache.cassandra.thrift.Cassandra$Client.recv_execute_cql3_query(Cassandra.java:1562) 
at org.apache.cassandra.thrift.Cassandra$Client.execute_cql3_query(Cassandra.java:1547) 
at org.apache.cassandra.cql.jdbc.CassandraConnection.execute(CassandraConnection.java:468) 
at org.apache.cassandra.cql.jdbc.CassandraConnection.execute(CassandraConnection.java:494) 
at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:164) 
... 10 more 
Exception in thread "main" java.lang.NullPointerException 
at java.util.TimSort.sort(TimSort.java:173) 
at java.util.Arrays.sort(Arrays.java:659) 
at ir.categorization.methods.test.Classifier.setFeatures(Classifier.java:68) 
at ir.categorization.methods.test.Classifier.<init>(Classifier.java:50) 
at ir.categorization.methods.test.ClassifierTest.main(ClassifierTest.java:105) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120) 

ve her şey tamam oldu: Ben programı çalıştırdığınızda bu özel durum olsun!

P.S: cassandra.yaml dosyasında native_transport_max_frame_size_in_mb dosyasını 256'dan 512'ye ve thrift_framed_transport_size_in_mb'den 15'ten 32'ye ayarlıyorum, ancak düzeltmiyor.

Herhangi bir vücut yardımı olabilir mi?

start_native_transport: true 

için cassandra.yaml içinde

+0

http://stackoverflow.com/questions/19381778/thrift-max-message-length-in-mb-not-recognized-cassandra – secmask

+0

teşekkürler. =, Ben bunu görmedim! ama neden cassandra 1.2.8 ile çalıştığını bilmek istiyorum ve herhangi bir sorun yoktu! – zsh

+0

Henüz cassandra kullanmamıştım, ama sanırım farklı varsayılan değerlere sahipler (her ikisini de sonlandırmamış olmanız durumunda), bu hata ile bir google'da birçok sonuç var :). – secmask

cevap

-1

değiştirme özelliği start_native_transport sonra deneyin ve operasyon için doğru bağlantı noktasını kullandığınızdan emin olun.

Cassandra ile etkileşimde bulunmak için hangi API'yi kullanıyorsunuz?

+1

Yerel ulaşım Thrift ile ilgisi yok. –

+0

Bence Cassandra/CQL için JDBC sürücüsünü kullanıyor! – kkmishra

+0

Yapıyor, ama bu sürücü Thrift'i bir taşıma aracı olarak kullanıyor. –

İlgili konular