• hive 中间会话临时文件自动清理脚本


    hive在运行过程中,我们经常会发现 hdfs /tmp/hive/hive or hdfs 目录占用空间巨大,我这里已经清理过了所以,相对较小。但是初次使用hive的用户,一定会发现

    随着时间的推移,/tmp/hive 目录一定会变的越来越庞大,这主要是hive在运行过程中会生产大量的中间会话在/tmp目录下,如果hive正常运行结束,临时会话会被自动清理掉,

    但是如果中间出现hive中断,或者异常退出,这些中间会话就会一直保存在hdfs上,久而久之,越来越多,造成大量无用的积压文件。必须手动清理掉。

    参考国外论坛的脚本,写了如下脚本,定时清理或者手动执行均可。

    #!/bin/bash
    #cleanup hive session dir on hdfs named with /tmp/hive/hdfs
    usage="Usage: cleanup.sh [days]"

            if [ ! "$1" ]

            then

            echo $usage

            exit 1

    fi

    now=$(date +%s)

    hadoop fs -ls  /tmp/hive/hdfs | grep "^d" | while read f; do

    dir_date=`echo $f | awk '{print $6}'`

    difference=$(( ( $now - $(date -d "$dir_date" +%s) ) / (24 * 60 * 60 ) ))

    if [ $difference -gt $1 ]; then

    echo $f
    hadoop fs -rm -r -skipTrash  `echo $f| awk '{ print $8 }'`;   //此处直接对上边的过滤结果进行删除,建议先改成 hadoop fs -ls -R 命令先进行测试,一切正常在改回删除。

    fi

    done

    -------------------------------------------------------------

    我这边,阿里云centos7环境,脚本运行正常。

  • 相关阅读:
    Struts2中的类型转换失败
    使用 paramsPrepareParamsStack 拦截器栈后的运行流程
    Action请求流程分析
    Struts2的默认拦截器执行顺序
    网络通信的整个流程
    路由和交换机工作原理
    网络编程之socket
    关于socket的setsockopt的使用
    socket工作原理深入分析
    网络通信协议(互联网协议)
  • 原文地址:https://www.cnblogs.com/telegram/p/10748530.html
Copyright © 2020-2023  润新知