【问题标题】:Cassandra "Unexpected error deserializing mutation" errorCassandra“反序列化突变的意外错误”错误
【发布时间】:2015-01-11 15:26:31
【问题描述】:

卡珊德拉停了下来。 当我使用“service cassandra start”或“service cassandra restart”重新启动 Cassandra 时,出现以下错误(来自“/var/log/cassandra/system.log”):

ERROR [main] 2014-11-14 02:08:52,379 CommitLogReplayer.java (line 304) Unexpected error deserializing mutation; saved to /tmp/mutation3145492124947244713dat and ignored.  This may be caused by replaying a mutation against a table with the same name but incompatible schema.  Exception follows:
org.apache.cassandra.serializers.MarshalException: Expected 8 or 0 byte long for date (7)
        at org.apache.cassandra.serializers.TimestampSerializer.validate(TimestampSerializer.java:118)
        at org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:171)
        at org.apache.cassandra.db.marshal.AbstractType.validateCollectionMember(AbstractType.java:289)
        at org.apache.cassandra.db.marshal.AbstractCompositeType.validate(AbstractCompositeType.java:282)
        at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:274)
        at org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:95)
        at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:151)
        at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:131)
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:336)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496)
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585)

现在我无法启动 cassandra。 cqlsh 也不可用。

【问题讨论】:

    标签: cassandra cqlsh


    【解决方案1】:

    我也遇到这个问题。我想分享一下我是如何解决这个问题的。

    • 更改调试模式

      默认调试模式为INFO,输出太少无法跟踪错误。您应该将调试模式从 INFO 更改为 DEBUG。这由 log4j-server.properties 文件中的以下行确定:

      log4j.rootLogger=INFO,stdout,R

    • 重新运行 cassandra

      从输出中,我发现重放提交日志文件时出现错误。我认为日志文件中有问题。但是日志文件是二进制的,我不知道怎么读。所以我尝试删除导致错误的日志文件,然后重新启动cassandra。它有效!

    也许根本问题和我的不一样,但是你可以尝试通过这种方式找到它。希望这能有所帮助。

    【讨论】:

    • 谢谢! :D 我们会试试这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 2014-03-13
    相关资源
    最近更新 更多