无法在Ubuntu 13.04上启动Cassandra 2.0“先升级到1.2.5+”

时间:2013-09-17 18:31:36

标签: ubuntu cassandra

我尝试在我的Ubuntu 13.04上安装Cassandra 2.0,但是当我尝试启动它时我收到了这个错误:

java.lang.UnsupportedOperationException: Commitlog segment is too old to open; upgrade to 1.2.5+ first
    at org.apache.cassandra.db.commitlog.CommitLogDescriptor.fromFileName(CommitLogDescriptor.java:65)
    at org.apache.cassandra.db.commitlog.CommitLogSegment$CommitLogSegmentFileComparator.compare(CommitLogSegment.java:391)
    at org.apache.cassandra.db.commitlog.CommitLogSegment$CommitLogSegmentFileComparator.compare(CommitLogSegment.java:386)
    at java.util.TimSort.countRunAndMakeAscending(TimSort.java:324)
    at java.util.TimSort.sort(TimSort.java:189)
    at java.util.TimSort.sort(TimSort.java:173)
    at java.util.Arrays.sort(Arrays.java:659)
    at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:124)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:443)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:486)

有人能帮助我吗?

2 个答案:

答案 0 :(得分:4)

我将稍微讨论@aurand所说的内容,这里如何将Cassandra从0.x或1.1.x升级到2.x

首先升级到 1.2.9 apt-get install cassandra=1.2.9

然后运行nodetool upgradesstables(否则会发生一些意想不到的事情),使用nodetool compactionstats(或更好watch -n 2 nodetool compactionstats)执行此过程可能需要取决于您的数据。

最后升级到最新版本apt-get install cassandra并再次运行nodetool upgradesstables。 然后你就完成了。

注意:您可以使用nodetool upgradesstables代替nodetool scrub,但似乎建议 use upgradesstables instead

答案 1 :(得分:2)

我在Ubuntu 14.04上遇到了完全相同的问题,我可以通过完全删除/ var / lib / cassandra解决它,正如user2278196在他原始问题的评论中所建议的那样。

请注意:我是在一个相当干净的系统上做到的,所以我完全相信我不会丢失任何信息。

我认为你不能在拥有实际数据的机器上做到这一点而不会丢失它。小心!