Hadoop、Strom集群实现日志自动清理
Hadoop+Storm集群,运行一段时间ZooKeeper等关键进程自动停止运行,经检测是系统磁盘不足
系统磁盘100%:
查找大文件后发现,空间均被ZooKeeper产生的log占用
find / -size +100M -exec ls -lh {} \;//查找大文件
后发现在 /var/lib/zookeeper/version-2 目录下有一些大型文件*.log,此目录是在ZooKeeper的zoo.cfg中配置的dataDir,现以以下方式对log文件进行定期清理。
首先创建执行文件:clean_zook_log.sh,代码如下
#!/bin/bash
#只保留最新的10个log与snapshot
#snapshot file dir
dataDir=/var/lib/zookeeper/version-2
# log dir(即在zoo.cfg中配置的dataDir:)
dataLogDir=/var/lib/zookeeper/version-2
#Leave 10 files
count=10
count=$[$count+1]
ls -t $dataLogDir/log.* | tail -n +$count | xargs rm -f
ls -t $dataDir/snapshot.* | tail -n +$count | xargs rm -f
此文件执行后会保留 /var/lib/zookeeper/version-2 目录下最新的10个log文件和最新10个snapshot文件,删除旧文件。
将此执行文件放置到指定文件路径,博主放到了 /root/runShell/zooKeeperLogClean/ 下。
然后在Linux命令行下执行:
crontab -e
后出现编辑界面,此处编辑同VIM ,crontab是一个自动执行某些程序的服务,详情自行百度。
在出现的编辑界面中输入如下代码:
01 03 * * * /root/runShell/zooKeeperLogClean/clean_zook_log.sh
保存退出后系统会在每天的3:01自动执行清理log文件的代码,防止磁盘再次被写满。
作者:leiliChina —— LiClass
出处:http://www.cnblogs.com/leiliChina/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。