zookeeper 清理snapshot及事务日志
2017-09-11 10:04
363 查看
在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存在这个目录中,关于这两个目录的详细说明,请看《ZooKeeper管理员指南》)。
第一种,也是运维人员最常用的,写一个删除日志脚本,每天定时执行即可:
以上这个脚本定义了删除对应两个目录中的文件,保留最新的60个文件,可以将他写到crontab中,设置为每天凌晨2点执行一次就可以了。
crontab -e
2 2 * * * /bin/bash /root/clean_zook_log.sh
> /dev/null 2>&1
第二种,使用ZK的工具类PurgeTxnLog,它的实现了一种简单的历史文件清理策略,可以在这里看一下他的使用方法:http://zookeeper.apache.org/doc/r3.4.3/api/index.html,可以指定要清理的目录和需要保留的文件数目,简单使用如下:
java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir><snapDir> -n <count>
第三种,对于上面这个Java类的执行,ZK自己已经写好了脚本,在bin/zkCleanup.sh中,所以直接使用这个脚本也是可以执行清理工作的。
第四种,从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能,通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。这两个参数都是在zoo.cfg中配置的:
autopurge.purgeInterval 这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。
autopurge.snapRetainCount 这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。
通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。
这两个参数都是在zoo.cfg中配置的,将其前面的注释去掉,根据需要修改日志保留个数:
[html] view
plain copy
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/upload/zookeeper/version-2
dataLogDir=/usr/upload/zookeeper/logs
clientPort=2181
autopurge.snapRetainCount=20
autopurge.purgeInterval=48
server.1=u04rtv01.yaya.corp:2888:3888
server.2=u04rtv02.yaya.corp:2888:3888
server.3=u04rtv03.yaya.corp:2888:3888
server.4=u04rtv04.yaya.corp:2888:3888
server.5=u04rtv05.yaya.corp:2888:3888
此处我们的配置就是:保留48小时内的日志,并且保留20个文件
原文地址:http://blog.csdn.net/u014242496/article/details/52763647
第一种,也是运维人员最常用的,写一个删除日志脚本,每天定时执行即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash #snapshot file dir dataDir=/user/upload/zookeeper/version-2 #tran log dir dataLogDir=/user/upload/zookeeper/version-2 logDir=/home/nileader/taokeeper/logs #Leave 60 files count=60 count=$[ $count +1] ls -t $dataLogDir / log .* | tail -n + $count | xargs rm -f ls -t $dataDir /snapshot.* | tail -n + $count | xargs rm -f ls -t $logDir /zookeeper. log .* | tail -n + $count | xargs rm -f |
crontab -e
2 2 * * * /bin/bash /root/clean_zook_log.sh
> /dev/null 2>&1
第二种,使用ZK的工具类PurgeTxnLog,它的实现了一种简单的历史文件清理策略,可以在这里看一下他的使用方法:http://zookeeper.apache.org/doc/r3.4.3/api/index.html,可以指定要清理的目录和需要保留的文件数目,简单使用如下:
java -cp zookeeper.jar:lib/slf4j-api-1.6.1.jar:lib/slf4j-log4j12-1.6.1.jar:lib/log4j-1.2.15.jar:conf org.apache.zookeeper.server.PurgeTxnLog <dataDir><snapDir> -n <count>
第三种,对于上面这个Java类的执行,ZK自己已经写好了脚本,在bin/zkCleanup.sh中,所以直接使用这个脚本也是可以执行清理工作的。
第四种,从3.4.0开始,zookeeper提供了自动清理snapshot和事务日志的功能,通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。这两个参数都是在zoo.cfg中配置的:
autopurge.purgeInterval 这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。
autopurge.snapRetainCount 这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个。
通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。
这两个参数都是在zoo.cfg中配置的,将其前面的注释去掉,根据需要修改日志保留个数:
[html] view
plain copy
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/upload/zookeeper/version-2
dataLogDir=/usr/upload/zookeeper/logs
clientPort=2181
autopurge.snapRetainCount=20
autopurge.purgeInterval=48
server.1=u04rtv01.yaya.corp:2888:3888
server.2=u04rtv02.yaya.corp:2888:3888
server.3=u04rtv03.yaya.corp:2888:3888
server.4=u04rtv04.yaya.corp:2888:3888
server.5=u04rtv05.yaya.corp:2888:3888
此处我们的配置就是:保留48小时内的日志,并且保留20个文件
原文地址:http://blog.csdn.net/u014242496/article/details/52763647
相关文章推荐
- zookeeper 清理snapshot及事务日志
- zookeeper 清理snapshot及事务日志
- Zookeeper日志文件&事务日志&数据快照
- ZooKeeper的事务日志可视化
- zookeeper3.4.6配置实现自动清理日志
- zookeeper集群日志清理
- 【ZooKeeper Notes 4】可视化zookeeper的事务日志
- ZooKeeper运维之数据文件和事务日志
- zookeeper事务日志可视化
- Zookeeper系列(十八)Zookeeper原理解析之数据存储之TxnLog事务日志
- 【ZooKeeper Notes 9】ZooKeepr日志清理
- SQL Server 2008事务日志清理
- 可视化zookeeper的事务日志(转)
- 自动清理zookeeper日志
- zookeeper日志清理
- 【ZooKeeper Notes 9】ZooKeepr日志清理
- Zookeeper_zookeeper日志清理
- zookeeper清理日志
- ZooKeeper的事务日志可视化
- ZooKeeper的事务日志和快照