我在尝试将单节点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