Cassandra:初始化错误 system.sstable activity

Cassandra: error in Initializing system.sstable activity

我在 cassandra 启动时遇到了一些问题。异常详情如下:-

INFO  06:49:10 Initializing system.sstable_activity
ERROR 06:49:10 Exiting due to error while processing commit log during initialization.
java.lang.InternalError: a fault occurred in a recent unsafe memory access operation in compiled Java code
    at org.apache.cassandra.db.commitlog.CommitLogDescriptor.writeHeader(CommitLogDescriptor.java:73) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.db.commitlog.CommitLogSegment.<init>(CommitLogSegment.java:168) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.db.commitlog.CommitLogSegment.freshSegment(CommitLogSegment.java:119) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.db.commitlog.CommitLogSegmentManager.runMayThrow(CommitLogSegmentManager.java:119) ~[apache-cassandra-2.1.9.jar:2.1.9]
    at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) [apache-cassandra-2.1.9.jar:2.1.9]
    at java.lang.Thread.run(Unknown Source) [na:1.8.0_60]

这可能是什么原因?

不知道这是什么原因,但重启我的系统解决了问题。

我通过删除导致问题的提交日志解决了这个问题。

我在 /casandra/data/commitlog 中找到了登录。

我删除后,重新运行cassandra,一切正常。我希望这对某人有所帮助!

这就是我解决提交日志问题的方法。只有在您不关心保留提交日志的状态时才应该这样做。

尝试使用

重启cassandra
sudo systemctl restart cassandra

然后我检查

systemctl status cassandra

看到状态是 'exited' 所以有问题。使用

检查 cassandra 的日志
sudo less /var/log/cassandra/system.log

and see org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Could not read commit log descriptor in file /var/lib/cassandra/commitlog/CommitLog-6-1498210233635.log

因为我不关心保留 Cassandra 的状态,所以我删除了所有提交日志,它现在可以正常启动

sudo rm /var/lib/cassandra/commitlog/CommitLog*
sudo systemctl restart cassandra

systemctl status cassandra(现在应该确认一下运行)