`

ZooKeepr日志清理

 
阅读更多

在使用zookeeper过程中,我们知道,会有dataDir和dataLogDir两个目录,分别用于snapshot和事务日志的输出(默认情况下只有dataDir目录,snapshot和事务日志都保存在这个目录中,关于这两个目录的详细说明,请看《ZooKeeper管理员指南

 

》)。

     正常运行过程中,ZK会不断地把快照数据和事务日志输出到这两个目录,并且如果没有人为操作的话,ZK自己是不会清理这些文件的,需要管理员来清理,这里介绍4种清理日志的方法。在这4种方法中,推荐使用第一种方法,对于运维人员来说,将日志清理工作独立出来,便于统一管理也更可控。毕竟zk自带的一些工具并不怎么给力,这里是社区反映的两个问题:

https://issues.apache.org/jira/browse/ZOOKEEPER-957

http://zookeeper-user.578899.n2.nabble.com/PurgeTxnLog-td6304244.html

第一种,也是运维人员最常用的,写一个删除日志脚本,每天定时执行即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
           
#snapshot file dir
dataDir=/home/nileader/taokeeper/zk_data/version-2
#tran log dir
dataLogDir=/home/nileader/taokeeper/zk_log/version-2
#zk log dir
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

            以上这个脚本定义了删除对应两个目录中的文件,保留最新的60个文件,可以将他写到crontab中,设置为每天凌晨2点执行一次就可以了。

第二种,使用ZK的工具类PurgeTxnLog,它的实现了一种简单的历史文件清理策略,可以在这里看一下他的使用方法:http://zookeeper.apache.org/doc/r3.4.3/api/index.html,可以指定要清理的目录和需要保留的文件数目,简单使用如下:

 

  1. 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个。

分享到:
评论

相关推荐

    zookeepr学习相关软

    里面包含关于zookeeper学习需要的软件,如:zookeeper-3.4.5.tar.gz、zookeeper-3.4.5.jar、zkclient-0.1.jar、curator-client-2.4.2等相关jar包

    zookeepr资料及代码.7z

    文件名 : ZooInspector.rar 文件夹名: zookeeper 文件名 : zookeeper-3.4.5.tar.gz 文件名 : ZooKeeper典型应用场景.pdf 文件名 : zookeeper文档.pdf 文件名 : zookeeper课上...文件名 : zookeepr资料及代码.7z

    zookeepr资料及代码.rar

    《ZooKeeper:详解与应用》 ZooKeeper,一个由Apache软件基金会开发的分布式协调服务,是Java编程语言的杰作,广泛应用于大数据、云计算等领域的分布式系统中。它提供了一个高效、可靠的命名服务、配置管理、集群...

    zookeeper-branch-3.5.8.zip

    此外,Zookeeper还采用了日志和快照机制来保证数据一致性,即使在系统崩溃或异常情况下,也能快速恢复到一致状态。 在分布式锁和队列的实现上,Zookeeper提供了基础的构建块。通过创建临时顺序节点,可以轻松实现...

    zookeepr

    运维人员需要关注Zookeeper的配置优化、监控日志、会话超时设置等,以保证服务的稳定运行。 总之,Zookeeper是分布式系统中的重要组件,它的设计和功能使得它在处理分布式一致性问题时发挥关键作用。对于JavaScript...

    zookeepr-3.5.0

    **正文** 《深入解析Zookeeper 3.5.0:Java与C的融合》 Zookeeper,这个在分布式系统领域广泛使用的协调服务框架,自诞生以来就因其强大的一致性、高可用性和可扩展性赢得了广大开发者青睐。本次我们将深入探讨...

    【附答案解析】最常⻅的 SpringCloud 微服务⾯试题(VIP典藏版)

    Spring Cloud微服务⾯试题 1. Spring Cloud Netflix 和 Spring Cloud Alibaba 包括哪些组件 2. Nacos是CP还是AP? ... 4. Nacos如何实现就近访问? 5. Nacos底层负载均衡底层原理 ...8. Nacos中的Distro协议 ...

    zookeeper删除、复制目录

    实现 zookeeper 的目录删除和复制,复制可以在不同实例之间进行,实现了简单的查询和更新~ 之前传了一个有个label写错了 删不了 重新传一个

    zookeeper连接工具

    Zookeeper是一个分布式协调服务,由Apache Hadoop项目开发,广泛应用于大数据生态系统中,如HBase、Kafka等。它提供了一种可靠的方式来管理配置信息、命名服务、分布式同步以及组服务。Zookeeper连接工具则是为了...

    集成物联网系统

    安装zookeepr,kafka和Spark: 在$ HOME / Software目录下 启动zookeepr,kafka和Spark: bin / startAllServers.sh 停止zookeepr,kafka和Spark: bin / stopAllServers.sh 下载并编译并运行: 在$ HOME / ...

    阿里分布式开源框架dubbo视频详解+zookeepter+mycat

    包含阿里分布式开源框架dubbo视频详解,dubbo工具包,源码分析,zookeepr视频,mycat介绍

    zkui-bin.zip

    4. **日志查看**:提供Zookeeper服务器的日志查看功能,帮助用户诊断问题。 5. **操作记录**:记录用户的所有操作,方便追踪和审计。 **安装与使用ZKUI:** 1. 下载并解压`zkui-bin.zip`压缩包,通常包含可执行文件...

    SpringBoot(2.1.6) + dubbo(apache 2.7.5) + zookeeper 集成并测试

    在本示例中,我们将探讨如何将SpringBoot 2.1.6与Apache Dubbo 2.7.5以及Zookeeper集成,以便构建一个服务提供者(Provider)和服务消费者(Consumer)。首先,我们需要理解这三个核心组件的角色: ...

    ZooInspector.zip

    5. **日志查看**:ZooInspector还提供了查看Zookeeper服务器的日志功能,有助于在出现问题时进行排查和诊断。 使用ZooInspector,首先要确保你的系统中已经安装了Java环境,并且配置了Zookeeper的环境变量。下载...

    ZooKeeper 未授权访问漏洞处理方法

    ### ZooKeeper 未授权访问漏洞处理方法 #### 一、漏洞背景及原理 **ZooKeeper** 是一个分布式的协调服务框架,它提供了一种高效可靠的解决方案来管理和维护分布式环境中不同节点之间的同步与协调问题。...

Global site tag (gtag.js) - Google Analytics