一、问题描述
国庆假回来,集群告警了。告警问题如下:
HOST_AGENT_PARCEL_DIRECTORY_FREE_SPACE 的运行状况测试结果存在隐患: Cloudera Manager Agent 的 Parcel 目录位于可用空间小于 10.0 吉字节 的文件系统上。 /opt/cloudera/parcels(可用:10.0 吉字节 (20.37%),容量:49.1 吉字节)
问题很清晰,就是CDH磁盘容量不够。
二、问题定位
据我所知,接上一手同事的交接,是没有做任何的日志清理脚本的,所以基本可以定位在日志过多了。
我们直接进入出问题的节点cdh03
,进入/var/log
目录下,查看各个目录的容量大小。
查看容量大小
du -s ./* | sort -nr
发现./hive
目录容量最大,有几十个G,进入 /var/log/hive
查看,发现有大量的输出日志,从2021年开始积攒的,每个日志大小有200M。
日志名称:
hadoop-cmf-hive-HIVEMETASTORE-cdh03.log.out.2021-*
三、问题解决
hive的metastore历史输出日志基本用处不大,可以直接干掉。输入命令删除2021-2022年历史日志。
rm -f hadoop-cmf-hive-HIVEMETASTORE-cdh03.log.out.2021-*
四、后续优化
实际上可以通过写一个定时脚本,对hdfs、hive、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.*
rm -rf /var/log/hive/*.log.*
清理频次可以根据实际需要,通过crontab调度,这里不再详细说明。