Apache zookeeper 如何使用PurgeTxnLog清除zookeeper日志?

Apache zookeeper 如何使用PurgeTxnLog清除zookeeper日志?,apache-zookeeper,Apache Zookeeper,Zookeeper在我们的整个生产环境中快速处理其内部二进制文件。 根据: 和 这是预期的行为,您必须调用org.apache.zookeeper.server.PurgeTxnLog 定期旋转它的粪便 因此: 但我得到: % ls -l1rt /tmp/zookeeper/version-2/ ... all the existing logs plus a new directory /tmp/zookeeper/version-2/version-2 我做错什么了吗 zookeeper

Zookeeper在我们的整个生产环境中快速处理其内部二进制文件。 根据: 和 这是预期的行为,您必须调用org.apache.zookeeper.server.PurgeTxnLog 定期旋转它的粪便

因此:

但我得到:

% ls -l1rt /tmp/zookeeper/version-2/
... all the existing logs plus a new directory
/tmp/zookeeper/version-2/version-2 
我做错什么了吗


zookeeper-3.4.6/

由于我没有听到zookeeper的修复,这是一个简单的解决方法:

COUNT=6
DATADIR=/tmp/zookeeper/version-2/
ls -1drt ${DATADIR}/* | head --lines=-${COUNT} | xargs sudo rm -f

从3.4.0开始,zookeeper现在有一个自动触发功能。看看

它说您可以使用
autopurce.snapRetainCount
autopurce.purgeInterval


自动敦促。snapRetainCount

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


autopurge.purgeInterval

3.4.0中新增:必须触发清除任务的时间间隔(小时)。设置为正整数(1及以上)以启用自动清除。默认值为0


我想+2这个,因为它今天让我笑了!谢谢。您的数据目录可能是/tmp/zookeeper而不是/tmp/zookeeper/version-2(version-2是zk内部的东西)。。。我想,它对我来说也不起作用,因为——我只知道文件夹填满了文件系统,这是不合理的。
COUNT=6
DATADIR=/tmp/zookeeper/version-2/
ls -1drt ${DATADIR}/* | head --lines=-${COUNT} | xargs sudo rm -f