Cassandra:初始化system.sstable活动时出错

时间:2015-09-28 07:09:16

标签: cassandra cqlsh nosql

我在cassandra启动时遇到了一些问题。 exceptios的详细信息如下: -

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$1.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]

这可能是什么原因?

3 个答案:

答案 0 :(得分:3)

我通过删除导致问题的提交日志来修复此问题。

我在/ casandra / data / commitlog中找到了日志。

删除后,我重新运行cassandra,一切都很好。我希望这有助于某人!

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这是我解决提交日志问题的方式。仅在不关心保存提交日志状态的情况下,才应该这样做。

尝试使用重新启动cassandra

sudo systemctl restart cassandra

然后我检查

systemctl status 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(应确认它现在正在运行)