如何使用PurgeTxnLog清除zookeeper日志?

use*_*956 6 apache-zookeeper

Zookeeper在我们的生产环境中迅速将其内部二进制文件放大.根据:http: //zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.htmlhttp://dougchang333.blogspot.com/2013/02/zookeeper-cleaning-logs-snapshots.html 这是预期的行为你必须定期调用org.apache.zookeeper.server.PurgeTxnLog来旋转它的大便.

所以:

% ls -l1rt /tmp/zookeeper/version-2/
total 314432
-rw-r--r-- 1 root root 67108880 Jun 26 18:00 log.1
-rw-r--r-- 1 root root   947092 Jun 26 18:00 snapshot.e99b
-rw-r--r-- 1 root root 67108880 Jun 27 05:00 log.e99d
-rw-r--r-- 1 root root  1620918 Jun 27 05:00 snapshot.1e266
... many more

% sudo java -cp zookeeper-3.4.6.jar::lib/jline-0.9.94.jar:lib/log4j-1.2.16.jar:lib/netty-3.7.0.Final.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:conf \
    org.apache.zookeeper.server.PurgeTxnLog \
    /tmp/zookeeper/version-2 /tmp/zookeeper/version-2 -n 3
Run Code Online (Sandbox Code Playgroud)

但我得到:

% ls -l1rt /tmp/zookeeper/version-2/
... all the existing logs plus a new directory
/tmp/zookeeper/version-2/version-2 
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

动物园管理员-3.4.6 /

kmo*_*ort 10

ZooKeeper现在具有3.4.0的Autopurge功能.请查看https://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html

它说你可以使用autopurge.snapRetainCountautopurge.purgeInterval


autopurge.snapRetainCount

3.4.0中的新增功能:启用后,ZooKeeper自动清除功能分别在dataDir和dataLogDir中保留autopurge.snapRetainCount最新快照和相应的事务日志,并删除其余日志.默认为3.最小值为3.


autopurge.purgeInterval

3.4.0中的新增功能:必须触发清除任务的时间间隔(以小时为单位).设置为正整数(1和更高)以启用自动清除.默认为0.