文档章节

ZooKeeper运行时,定时清理日志数据

流萤飘枫丶
 流萤飘枫丶
发布于 2017/04/06 10:29
字数 731
阅读 94
收藏 2
点赞 0
评论 0

 在使用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. #!/bin/bash 
  2.  
  3. #snapshot file dir 
  4. dataDir=/home/yinshi.nc/test/zk_data/version-2 
  5. #tran log dir 
  6. dataLogDir=/home/yinshi.nc/test/zk_log/version-2 
  7. #zk log dir 
  8. logDir=/home/yinshi.nc/test/logs 
  9. #Leave 66 files 
  10. count=66 
  11. count=$[$count+1] 
  12. ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f 
  13. ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f 
  14. ls -t $logDir/zookeeper.log.* | tail -n +$count | xargs rm -f 
  15.  
  16. #find /home/yinshi.nc/taokeeper/zk_data/version-2 -name "snap*" -mtime +1 | xargs rm -f 
  17. #find /home/yinshi.nc/taokeeper/zk_logs/version-2 -name "log*" -mtime +1 | xargs rm -f 
  18. #find /home/yinshi.nc/taokeeper/logs/ -name "zookeeper.log.*" -mtime +1 | xargs rm –f 
以上这个脚本定义了删除对应两个目录中的文件,保留最新的66个文件,可以将他写到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个。

© 著作权归作者所有

共有 人打赏支持
流萤飘枫丶
粉丝 9
博文 141
码字总数 106965
作品 0
成都
程序员
Zookeeper集群部署和使用

Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,Google Chubby的一个开源实现。它是一个分布式应用程序协调服务,提供的功能包括:配置管理,名字服务,提供分布式同步、队列管理...

justin_peng
06/21
0
0
Zookeeper+Kafka集群搭建

Zookeeper集群搭建 Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群。 1、软件环境 (3台服务器-我的测试) 192.168.30.204 server1 192.168.30.205 server2 192.168.30.206...

qianghong000
06/26
0
0
zookeeper 管理员笔记

zookeeper需要java1.6以上 调整好jvm大小,别放在引起swap环境,zookeeper的及时性,不允许swap ################################################################################# zook......

1066897515
06/26
0
0
ZooKeeper教程资源收集(简介/原理/示例/解决方案)

菩提树下的杨过: ZooKeeper 笔记(1) 安装部署及hello world ZooKeeper 笔记(2) 监听数据变化 ZooKeeper 笔记(3) 实战应用之【统一配置管理】 ZooKeeper 笔记(4) 实战应用之【消除单点故障】...

easonjim
2017/09/05
0
0
zookeeper 3.4.2集群安装

集群安装 1.安装JDK。下载地址:http://java.sun.com/javase/downloads/index.jsp 设置JAVAHOME ,将$JAVAHOME/bin 加到PATH变量里。 2.下载Zookeeper 地址:http://hadoop.apache.org/zook......

linan
2012/11/05
0
1
Spring + Dubbo + zookeeper (linux) 框架搭建

dubbo简介 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中...

王庭
2015/10/27
0
5
apache-storm分布式计算(drpc)开发心得

首先这东西是个拼凑出来的东西,啥zookeeper,nimbus,supervisor,drpc,一个服务不能少。对于我来说一开始不是部署集群还可以,大致步骤是先装zookeeper,这东西运行起来后,你才能跑nimbu...

uaisunshine
2015/03/27
0
2
ZooKeeper进阶(一):Zookeeper简介

ZooKeeper进阶(一):Zookeeper简介 1、zookeeper配置文件简介 ZooKeeper 的功能特性通过 ZooKeeper 配置文件来进行控制管理( zoo.cfg 配置文件)。ZooKeeper 这样的设计其实是有它自身的原...

sunhuaqiang1
04/22
0
0
《Zookeeper--Windows单机安装》

《Zookeeper--Windows单机安装》 Zookeeper作为Dubbo服务的注册中心,Zookeeper一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中...

爱笑的我们
05/09
0
0
遇到的问题--java连接hbase的thrift2报错readtimeout

遇到问题 java连接hbase的thrift2报错readtimeout 原因分析 java连接hbase的thrift2报错readtimeout原因有多种, 一是排除网络和防火墙问题 二是检测thrift2服务是否正常或者假死 三是thrif...

q383965374
04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

第十四章NFS服务搭建与配置

14.1 NFS介绍 NFS介绍 NFS是Network File System的缩写;这个文件系统是基于网路层面,通过网络层面实现数据同步 NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netap...

Linux学习笔记
23分钟前
1
0
流利阅读笔记27-20180716待学习

生了娃照样能打,两位母亲温网会师 Lala 2018-07-16 1.今日导读 现今在生儿育女后回归事业的母亲们已经非常多见,但是很少有人想到,以高强度运动与竞争激烈为特色的竞技体育项目也会有 work...

aibinxiao
24分钟前
2
0
Guava 源码分析(Cache 原理【二阶段】)

前言 在上文「Guava 源码分析(Cache 原理)」中分析了 Guava Cache 的相关原理。 文末提到了回收机制、移除时间通知等内容,许多朋友也挺感兴趣,这次就这两个内容再来分析分析。 在开始之前...

crossoverJie
36分钟前
0
0
OSChina 周一乱弹 —— 如果是你喜欢的女同学找你借钱

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享Michael Learns To Rock的单曲《Fairy Tale》 《Fairy Tale》- Michael Learns To Rock 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
407
15
NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部