gpt4 book ai didi

cassandra - 如何从 Apache Cassandra CommitLogReplayException 中恢复

转载 作者:行者123 更新时间:2023-12-02 11:29:13 35 4
gpt4 key购买 nike

我在运行 apache-cassandra 3.3 时意外关闭了 Mac OS X。在新的引导加载中重新启动 cassandra 时,出现以下错误:

INFO  15:25:15 Replaying /Users/eswenson/opt/apache-cassandra-3.5/bin/../data/commitlog/CommitLog-6-1461717351786.log, /Users/eswenson/opt/apache-cassandra-3.5/bin/../data/commitlog/CommitLog-6-1461717351787.log, /Users/eswenson/opt/apache-cassandra-3.5/bin/../data/commitlog/CommitLog-6-1461942807785.log, /Users/eswenson/opt/apache-cassandra-3.5/bin/../data/commitlog/CommitLog-6-1461943004975.log
ERROR 15:25:15 Exiting due to error while processing commit log during initialization.
org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Encountered bad header at position 542295 of commit log /Users/eswenson/opt/apache-cassandra-3.5/bin/../data/commitlog/CommitLog-6-1461717351786.log, with bad position but valid CRC
at org.apache.cassandra.db.commitlog.CommitLogReplayer.handleReplayError(CommitLogReplayer.java:611) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.db.commitlog.SegmentReader$SegmentIterator.computeNext(SegmentReader.java:105) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.db.commitlog.SegmentReader$SegmentIterator.computeNext(SegmentReader.java:78) [apache-cassandra-3.5.jar:3.5]
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) [guava-18.0.jar:na]
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) [guava-18.0.jar:na]
at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:399) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:236) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:192) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:172) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:283) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:551) [apache-cassandra-3.5.jar:3.5]
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:680) [apache-cassandra-3.5.jar:3.5]

我在堆栈溢出和谷歌上搜索,没有找到同样问题的帖子。我发现问题 https://issues.apache.org/jira/browse/CASSANDRA-9749 ,这是相关的,但是这个被标记为已解决,并且与检测到问题后继续执行相关,而不是因异常而失败。

遇到这种情况我该怎么办?是否有任何恢复路径(假设没有可用的快照)?有什么方法可以截断有问题记录的提交日志吗?有什么工具可以修复错误的 header (例如删除记录)?

谢谢。

最佳答案

我有时在 Mac OS 上使用本地 Cassandra 时也会遇到此异常。

如果您不关心丢失提交日志中的数据或者您在某处有备份,只需停止 Cassandra,清理 commitlog 文件夹并重新启动即可。

恐怕没有其他选择。顺便问一下,您是否在 Mac OS 上部署 Cassandra 进行生产?

  • 如果是,您应该知道 Mac 操作系统并未得到官方支持
  • 如果不是用于生产,那么谁在乎,只需清理commitlog并重新启动

关于cassandra - 如何从 Apache Cassandra CommitLogReplayException 中恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942835/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com