0
votes

I'm trying to use SSTableLoader to migrate tables from a Cassandra 2.1 cluster to a Cassandra 3.11 and while some SStables are loaded successfully, I keep hitting weird errors with others. I'm trying to repeatedly load the same SSTables, sometimes I get a generic

java.util.concurrent.ExecutionException: org.apache.cassandra.streaming.StreamException: Stream failed

Other times

org.apache.cassandra.io.FSReadError: java.io.IOException: Broken pipe

However, if I check in system.log I always find this error:

java.lang.IllegalArgumentException: No column name component found in cell name

Tried searching for the error above, did not find any helpful details.

I tried nodetool repair on the tables in the 2.x cluster but after a couple of hours it looks like it's still not done. I would try to use nodetool scrub but not sure if this will result in data loss.

1

1 Answers

0
votes

The problem is that the sstable format changed in Cassandra 3.0 and so you can't just stream sstables in the 2.1 format to a 3.x node as the sstable format.

The official (and better) way is that you would first need to upgrade your node(s) to a newer C* version and then run nodetool upgradesstables -a.