我在嘗試將單節點Cassandra集羣從1.1.5升級到2.0.x.將Cassandra 1.2.9升級到2.0.x
我的生產服務器在Linux上運行。我將數據文件夾拖到我的Windows盒子中,保留system
keyspace以及我感興趣的一個特定的鍵盤空間,並在獲得Cassandra之後放下其餘的部分。
我升級和測試:
- 1.1.5 - > 1.2.0
- 1.2.0 - > 1.2.8
- 1.2.8 - > 1.2.9
冉:
nodetool upgradesstables
describe schema
select * from table limit 100
一切看起來好與1.x版。
當試圖升級到2.0.7,我碰到一個問題(我看到建議的升級路徑是1.2.9 - > 2.0.7):
INFO 16:43:01,758 Opening C:\path\mykeyspace-mytable-ic-655 (97902117 bytes)
ERROR 16:43:12,443 Exception encountered during startup
java.lang.RuntimeException: Incompatible SSTable found. Current version jb is unable to read file: C:\path\mykeyspace\mytable\mykeyspace-mytable.mytable_location_idx-he-647. Please run upgradesstables.
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:409)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:391)
at org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex.init(AbstractSimplePerColumnSecondaryIndex.java:52)
at org.apache.cassandra.db.index.SecondaryIndexManager.addIndexedColumn(SecondaryIndexManager.java:292)
at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:277)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:415)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:386)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:309)
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:266)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:110)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:290)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:480)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:569)
我做運行從upgradesstables 1.2.9/bin,啓動後1.2.9/bin/cassandra。 任何想法有什麼不對?
哇,像老闆一樣規定版本代碼! – Aaron