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
主要就是格式化的類修改即可