• spark历史任务日志占满hdfs


    发现cloudera上yarn nodeManager告警,提示

     进入NodeManager列表,发现一个节点存在告警

    猜测可能是日志写入失败,可能是磁盘不够,进入集群节点列表,查看这个NodeManager所在节点状态,发现磁盘将要被占满,因为磁盘很大,猜测应该是hdfs上存储了什么大文件。

    再进入dataNode节点列表,确实是节点占用存储太大,已经在告警磁盘可用空间不足。

    登录到这个dataNode节点服务器:

    执行:hadoop fs -du -h /

    查看是哪个文件占用过大,如此一直找到最后一个文件夹/user/spark/spark2ApplicationHistory,发现这个文件夹几乎占满了磁盘,这个目录是spark的日志目录,下面确实有大量文件,每个文件记录了一个spark任务运行期间日志。

    .inprogress结尾的是正在运行任务,但是发现有好多.inprogress结尾的任务在spark任务管理界面并没有找到对应任务,应该是异常结束的,导致日志后缀没有去掉。

    确认好哪些日志文件可以删除后,使用:hadoop fs -rm -skipTrash 文件路径   (-skipTrash请慎用,删除不经过回收站),删除有风险,大侠们请做好保护工作,此处只提供方法概不负责,哈哈~

    删除后cloudera界面状态很快恢复。

    对于这个日志目录为什么没有自动删除,还在找问题和解决方法,后续敬请期待。

    也可以通过下面脚本检查指定文件块占用情况:

    #!/bin/bash
    file_name="$1"
    if [ -z "$file_name" ];then
    	echo "Pls input file path"
    	exit 1
    fi
    
    cat "$file_name"| while read line
    do
    	hadoop fsck $line -blocks > temp.log
    	echo $line >> final.log
    	tail -11 temp.log >> final.log
    	echo "">temp.log
    	echo "Finish check $line"
    done
    

      

  • 相关阅读:
    vue实现简单的点击切换颜色
    Controller层注解详解
    分布式数据库系统的透明性概念
    utf8和utf8mb64的关系
    数据库设计的四个阶段
    IDEA自定义启动图
    编译过程划分
    Linux 之 CentOS 7 安装Tomcat9
    Linux 之 CentOS 7 安装JDK1.8
    Linux 之 CentOS 7安装MySQL5.7
  • 原文地址:https://www.cnblogs.com/liwutao/p/11796995.html
Copyright © 2020-2023  润新知