清理HDFS日志

  无法启动
内容纲要

概要描述


/var/log/占用了很大的空间,需要清理,而且路径下面有几个比较大的日志文件

mark

详细说明


现象:

查看发现是/var/log/hdfs1占用了大量的空间,其中有两个namenode的日志文件分别为20G和50G
mark
但是正常情况下,hdfs的日志是每64M做一次分割mark

这个情况不正常

原因

hdfs中httpfs和其他hdfs的角色共享/var/log/hdfs1的日志路径,
mark

当httpfs先启动,NN,SN,DN后启动,那么是不会出现问题的,但是当httpfs晚于其他角色启动,即httpfs最后启动,那么httpfs会把/var/log/hdfs1/的owner改成自己

  • 正常启动hdfs:
    mark
  • 单独重启httpfs
    mark

可以看到/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
mark

不要把路径改为/var/log/hdfs1之外的路径
重启manager

/etc/init.d/transwarp-manager restart

若当前/var/log/hdfs1的owner是hdfs,那么只需要重启httpfs,若owner是httpfs,那么当前节点上的NN和httpfs都需要重启。

下面是最终的hdfs的日志权限
mark

其他信息


所有看到的hdfs日志权限,皆为pod内。pod外面的hdfs日志的owner只有1001、1002和1003

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。