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文件的代码,防止磁盘再次被写满。

posted on 2018-01-25 15:53  LiClass  阅读(956)  评论(0编辑  收藏  举报

导航