我有一个从cassandra中提取的提交日志文件(commitlog-7-1593076543244.log),但是这个文件似乎是压缩的,就像一个二进制文件。当我用“utf-8”编码的vscode打开它时,这里好像输入了图像描述。那么如何恢复/解压缩文件并从提交日志中提取有用的信息呢?有人能帮我吗?谢谢。
b5buobof1#
Cassandra使用 commit log 只是为了恢复 Memtable 重新启动时,如果服务器以前已崩溃并且这些记录未刷新到 SStable .它是内部结构,只要Kafka代码是向后兼容的,并且能够恢复,它们就可以自由地在版本之间更改结构 Memtable 在服务器崩溃后重新启动。通过重新启动服务器(如果它崩溃了),该信息将恢复到 Memtable 这些信息将通过 CQL 查询。那么您需要从commit long获得什么信息,您的情况是什么,以及为什么您不能通过我描述的路径实现它。注:也许你可以写一个工具,轻松地读取日志段通过检查 CommitLog.recover() 方法并将相关代码提取到程序中。提交日志.javacommitlogreader.java文件commitlogreadhandler.java文件
commit log
Memtable
SStable
CQL
CommitLog.recover()
1条答案
按热度按时间b5buobof1#
Cassandra使用
commit log
只是为了恢复Memtable
重新启动时,如果服务器以前已崩溃并且这些记录未刷新到SStable
.它是内部结构,只要Kafka代码是向后兼容的,并且能够恢复,它们就可以自由地在版本之间更改结构
Memtable
在服务器崩溃后重新启动。通过重新启动服务器(如果它崩溃了),该信息将恢复到
Memtable
这些信息将通过CQL
查询。那么您需要从commit long获得什么信息,您的情况是什么,以及为什么您不能通过我描述的路径实现它。
注:
也许你可以写一个工具,轻松地读取日志段通过检查
CommitLog.recover()
方法并将相关代码提取到程序中。提交日志.java
commitlogreader.java文件
commitlogreadhandler.java文件