zookeeper的事务日志的格式如 log.xxx, xxx表示顺序序号
我使用的zookeeper版本:3.5.5
事务日志
执行命令 java -cp .:/tmp/zookeeper-3.5.5.jar:/tmp/slf4j-api-1.7.25.jar:/tmp/zookeeper-jute-3.5.5.jar org.apache.zookeeper.server.LogFormatter /tmp/zookeeper/version-2/log.1 > /tmp/zklog.log
ERROR: java.lang.NoClassDefFoundError: org/apache/jute/InputArchive
这个问题的原因是没有加入另外的一个包 zookeeper-jute-3.5.5.jar
,这个包在你的zookeeper安装目录下的lib
里面
java -cp .:/tmp/zookeeper-3.5.5.jar:/tmp/slf4j-api-1.7.25.jar:/tmp/zookeeper-jute-3.5.5.jar org.apache.zookeeper.server.LogFormatter /tmp/zookeeper/version-2/log.1 > /tmp/zklog.log
ERROR:Failed to load class "org.slf4j.impl.StaticLoggerBinder".
这个的问题原因后来在上 stackoverflow 看他们是怎么查看的,得到灵感应该是日志类的jar包不全导致的
java -cp .:/tmp/zookeeper-3.5.5.jar:/tmp/zookeeper-jute-3.5.5.jar:/tmp/log4j-1.2.17.jar:/tmp/slf4j-api-1.7.25.jar:/tmp/slf4j-log4j12-1.7.25.jar org.apache.zookeeper.server.LogFormatter /tmp/zookeeper/version-2/log.1 > /tmp/zklog.log
最后执行这个就成功了
快照日志
根据上面读取事务日志的方法执行
java -cp .:/tmp/zookeeper-3.5.5.jar:/tmp/zookeeper-jute-3.5.5.jar:/tmp/log4j-1.2.17.jar:/tmp/slf4j-api-1.7.25.jar:/tmp/slf4j-log4j12-1.7.25.jar org.apache.zookeeper.server.SnapshotFormatter /tmp/zookeeper/version-2/snapshot.0 > /tmp/zksnapshot.log
主要就是格式化的类修改即可