将Cassandra 1.2.9升级到2.0.x.

时间:2017-03-03 14:34:38

标签: cassandra cassandra-2.0

我尝试将单节点Cassandra集群从1.1.5升级到2.0.x.

我的生产服务器在Linux上运行。我将数据文件夹拉到我的Windows框中,保留nodetool upgradesstables密钥空间以及我感兴趣的特定密钥空间,并在获得Cassandra之后删除其余部分。

我升级并测试过:

  • 1.1.5 - > 1.2.0
  • 1.2.0 - > 1.2.8
  • 1.2.8 - > 1.2.9

冉:

  • describe schema
  • select * from table limit 100
  • 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)

1.x版本的一切看起来都不错。

当尝试升级到2.0.7时,我遇到了一个问题(我看到推荐的升级路径是1.2.9 - &gt; 2.0.7):

MainActivity

在启动1.2.9 / bin / cassandra之后从1.2.9 / bin运行升级。 知道什么是错的吗?

2 个答案:

答案 0 :(得分:3)

mytable_location_idx-he-6471.1.5 sstable(he是版本,h是1.1,eh的第5版本) 。再次运行升级并验证所有sstables是否已迁移。 sstable的版本应以i开头1.2,并且在升级到2.0之前,您希望它在ic

答案 1 :(得分:0)

问题在于我只是将生产群集部分迁移到我的本地环境。我复制了整个system键空间文件,只复制了一些data文件,仅用于我的一个键空间。

我通过重做一切来解决问题:

  • 在本地设置1.1.5
  • 使用cqlsh连接到它,删除了我在本地没有的所有其他键空间和表格
  • 迁移(不确定哪些人做了伎俩,假设我做了所有这些):1.1.5 - &gt; 1.2.0 - &gt; 1.2.8 - &gt; 1.2.9 - &gt; 2.0.0 - &gt; 2.0.1 - &gt; 2.0.7。
  • 可能删除了任何不匹配的索引文件Cassandra在启动时抱怨(不确定我在进行最后一次神奇工作升级时遇到过什么,但这让我在之前的尝试中推进了版本)。我的猜测是Cassandra看着他们所有人,但upgradesstables偶尔会留下一些人。