2011-08-02 26 views
5

Cassandra 0.7.4 kullanıyorum. Bugün çoğu json2sstable kullanımı ile basit bir ithalat yapmak için kafamı kırıyordum. Test Kümesi'ndeyim.Cassandra json2sstable Boş İşaretçi İstisnası

I create a simple keyspace KS1. 
I create a simple CF mycf. 
I insert a row with only one column like set mycf[key1][col1]='col1value' 

Yukarıdaki kodu sstable2json ile dışarıda denilen bir dosyaya dışa aktarıyorum. Ama tersini (ithalat) denediğimde her zaman NPE verir.

C:\>json2sstable -K KS1 -c mycf C:/out C:/var/lib/cassandra/data/kS1/mycf-f-2-Data.db 
java.lang.NullPointerException 
     at org.apache.cassandra.db.ColumnFamily.create(ColumnFamily.java:67) 
     at org.apache.cassandra.db.ColumnFamily.create(ColumnFamily.java:61) 
     at org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:194) 
     at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:421) 
ERROR: null 

Kaynak koduna baktım. CFMetaData'nın null olarak denetlenmediği bir iddia var. Bu açıkça boş olduğunu söylüyor ama neden? Herhangi bir öneriyi takdirle karşılayan

.

cevap

3

Tamam, yaptığım şey buydu. Bu, yalnızca yaptığım şeyi kaydetmem için yayını silemedim. Cassandra 0.7.4'ün yeni kurulumunu yaptım. Aynı adımları tekrar yaptım. Bu sefer sütunun zaman damgası değerini biraz değiştirdim (biraz rasgele artış). NPE gitmişti ama yetersiz bellek hatası verdi. OOM hatasını alırsanız, here okudum, cassandra.yaml'deki sıkıştırma ayarını değiştirerek çözebilirsiniz. Bunu değiştirdi ve şimdi çalışıyor. Gerçekten hangi basamakların sorunu çözdüğünü bilmiyorum.

İlgili konular