概要描述
/var/log/占用了很大的空间,需要清理,而且路径下面有几个比较大的日志文件
详细说明
现象:
查看发现是/var/log/hdfs1占用了大量的空间,其中有两个namenode的日志文件分别为20G和50G
但是正常情况下,hdfs的日志是每64M做一次分割
这个情况不正常
原因
hdfs中httpfs和其他hdfs的角色共享/var/log/hdfs1的日志路径,
当httpfs先启动,NN,SN,DN后启动,那么是不会出现问题的,但是当httpfs晚于其他角色启动,即httpfs最后启动,那么httpfs会把/var/log/hdfs1/的owner改成自己
- 正常启动hdfs:
- 单独重启httpfs
可以看到/var/log/hdfs1及下级目录中所有文件的owner都由hdfs变成了httpfs
这个情况下NN的日志不会做自动切分
解决步骤
-
备份日志文件
cp /var/log/hdfs1/hadoop-hdfs-namenode-bd-nn01.log.1 /tmp/ cp /var/log/hdfs1/hadoop-hdfs-namenode-bd-nn01.log /tmp/
-
删除日志文件
rm -rf /var/log/hdfs1/hadoop-hdfs-namenode-bd-nn01.log.1 echo ""> /var/log/hdfs1/hadoop-hdfs-namenode-bd-nn01.log
-
方案1:
workround:
重启该节点上的NN,将所有日志的owner改为hdfs,后面的日志可以正常切分 -
方案2:
修改httpfs的日志路径
进入manager节点(版本是6.0.1,所以目录为transwarp-6.0.1-final,其他版本修改为对应的版本路径即可):
vi /var/lib/transwarp-manager/master/content/meta/services/HDFS/transwarp-6.0.1-final/metainfo.yaml
将HTTPFS_LOG_DIR的路径改由/var/log/${service.sid}改为/var/log/${service.sid}/httpfs
不要把路径改为/var/log/hdfs1之外的路径
重启manager
/etc/init.d/transwarp-manager restart
若当前/var/log/hdfs1的owner是hdfs,那么只需要重启httpfs,若owner是httpfs,那么当前节点上的NN和httpfs都需要重启。
下面是最终的hdfs的日志权限
其他信息
所有看到的hdfs日志权限,皆为pod内。pod外面的hdfs日志的owner只有1001、1002和1003