zookeeper 日志清理

日志路径

zookeeper的配置文件zoo.cfg中,有一个dataDir的配置项,这个就是配置zookeeper快照和事务日志的存储路径。

快照日志和事物日志可以分开配置,如下配置:

dataDir=/data/hadoop/zookeeper/data                   
dataLogDir=/data/hadoop/zookeeper/log
1
2

zookeeper在进行读写操作时会产生大量的事物日志,将二类日志分开配置,可以提升性能。

日志介绍

  • 事务日志指zookeeper系统在正常运行过程中,针对所有的更新操作,在返回客户端“更新成功”的响应前,zookeeper会保证已经将本次更新操作的事务日志已经写到磁盘上,只有这样,整个更新操作才会生效。

  • 快照日志指zookeeper的数据在内存中是以树形结构进行存储的,而快照就是每隔一段时间就会把整个DataTree的数据序列化后存储在磁盘中,这就是zookeeper的快照文件

  • log4j日志用于记录zookeeper集群服务器运行日志。

日志清理

  • 自动清理

    在zookeeper 3.4.0以后,zookeeper提供了自动清理snapshot和事务日志功能,通过配置zoo.cfg下的autopurge.snapRetainCount和autopurge.purgeInterval这两个参数实现日志文件的定时清理

  • 手动清理

    ## 3表示剩余日志的修炼
    bin/zkCleanup.sh -n 3
    
    1
    2

    或者采用下面这种方式

    java -cp zookeeper-3.4.6.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.16.jar:conf org.apache.zookeeper.server.PurgeTxnLog /data/hadoop/zookeeper/log /data/hadoop/zookeeper/data  -n 10
    
    1
上次更新: 3 个月前