• 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环境,脚本运行正常。

  • 相关阅读:
    Linux-1-用户管理
    接口相关资料整理
    JPype1使用总结
    1.django项目的创建(在CMD中)
    公有云、私有云和混合云的区别
    接口测试1.测试用例要点与模板
    PostMan Test 的脚本scripts编写方法
    Tensorflow RNN中的坑
    2019年终总结
    tensorflow中一种融合多个模型的方法
  • 原文地址:https://www.cnblogs.com/telegram/p/10748530.html
Copyright © 2020-2023  润新知