Reputation: 4052
I'm trying to upgrade a single-node Cassandra cluster from 1.1.5 to 2.0.x.
My production server is running on Linux. I pulled the data folder to my Windows box, keeping the system
keyspace, along with a particular one I'm interested in, and dropping the rest after getting Cassandra up.
I upgraded and tested:
Ran:
nodetool upgradesstables
describe schema
select * from table limit 100
Everything looks good with 1.x versions.
When trying to upgrade to 2.0.7, I run into an issue (I saw the recommended upgrade path is 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)
I did run upgradesstables from 1.2.9/bin, after starting 1.2.9/bin/cassandra. Any idea what's wrong?
Upvotes: 1
Views: 699
Reputation: 4052
The problem lied in the fact that I had only partially migrated my production cluster to my local environment. I had copied the entire system
keyspace files and only some of the data
files for just one of my keyspaces.
I fixed the problem by redoing everything:
upgradesstables
occasionally leaves some behind.Upvotes: 1
Reputation: 16420
mytable_location_idx-he-647
is a 1.1.5
sstable (he
is the version, h
is 1.1 and e
is the 5th version of h
). Run upgradesstables again and verify all the sstables get migrated. the version of the sstable should start with an i
for 1.2, and you want it to be at ic
before upgrading to 2.0.
Upvotes: 3