背景
集群运行一段时间(大概一月多)后,cloudera manager管理界面出现爆红,爆红的组件有hdfs、zookeeper。
发现问题
点击详细内容查看,报日志空间不够的错误。初步判断是各个组件的日志数据把空间占满了。
查看各个目录下磁盘占用情况
df -h
cdh的各组件的日志一般在/var/log目录下,因此主要关注“/”
查看/var/log下使用空间较大的文件夹,并由大到小排列
cd /var/log/ du -s ./* | sort -nr
还有一个是 Cloudera Management Service服务产生的日志,存在/var/lib/...
cd /var/lib/cloudera-service-monitor
du -s ./* | sort -nr
清理日志
- 清理cm、cdh组件的日志数据
进入对应的目录,删除文件后缀是数字的日志。
cd /var/log/hadoop-mapreduce cd /var/log/hadoop-hdfs cd /var/log/zookeeper cd /var/log/hive cd /var/log/cloudera-scm-agent cd /var/log/audit cd /var/log/sa cd /var/log/hadoop-yarn cd /var/log/hue-httpd
rm -rf *.out.*
rm -rf *.log.*
- 清理监控服务的数据
本次bug的罪魁祸首,监控服务的四个进程全都在一个节点上,监控服务单独用了20G的空间
删除监控服务的日志
rm /var/lib/cloudera-host-monitor/ts/*/partition*/* -rf
rm /var/lib/cloudera-service-monitor/ts/*/partition*/* -rf
自动化脚本
写脚本,设置定时任务,实现自动化清理日志
脚本,目前只针对hdfs、zookeeper、cm的日志进行清理,可根据需要添加其他组件的日志清理
vim cleanLog.sh
#!/bin/bash # # clear cloudera manager monitor log rm /var/lib/cloudera-host-monitor/ts/*/partition*/* -rf rm /var/lib/cloudera-service-monitor/ts/*/partition*/* -rf # clear cdh log rm -rf /var/log/cloudera-scm-eventserver/*.out.* rm -rf /var/log/cloudera-scm-firehose/*.out.* rm -rf /var/log/cloudera-scm-agent/*.log.* rm -rf /var/log/cloudera-scm-agent/*.out.* rm -rf /var/log/cloudera-scm-server/*.out.* rm -rf /var/log/cloudera-scm-server/*.log.* rm -rf /var/log/hadoop-hdfs/*.out.* rm -rf /var/log/hadoop-httpfs/*.out.* rm -rf /var/log/hadoop-kms/*.out.* rm -rf /var/log/hadoop-mapreduce/*.out.* rm -rf /var/log/zookeeper/*.log.*
设置定时任务
crontab -e
# 设置每周五的下午7点执行
00 19 * * 5 sh /root/clearLog.sh