当前位置: 首页 > news >正文

hive临时目录清理

hive运行失败会导致临时目录无法自动清理,因此需要自己写脚本去进行清理

实际发现hive临时目录有两个:
/tmp/hive/{user}/*
/warehouse/tablespace//hive/**/.hive-staging_hive

分别由配置hive.exec.scratchdir和hive.exec.stagingdir决定:
在这里插入图片描述
在这里插入图片描述
要注意的是stagingdir可能存在多个层级的目录中,比如xxx.db/.hive-staging_xxx,xxx.db/${table}/.hive-staging_xxx。这里为了偷懒,只清理两层即可,如果发现有更多层,再多加一层的调用即可

创建清理脚本clean_hive_tmpfile.sh

#!/bin/bash
usage="Usage: cleanup.sh [days]"if [ ! "$1" ]thenecho $usageexit 1
finow=$(date +%s)
days=$1cleanTmpFile() {echo "clean path:"$1su hdfs -c "hdfs dfs -ls -d $1" | grep "^d" | while read f; dodir_date=`echo $f | awk '{print $6}'`difference=$(( ( $now - $(date -d "$dir_date" +%s) ) / (24 * 60 * 60 ) ))if [ $difference -gt $days ]; thenecho $fname=`echo $f| awk '{ print $8 }'`echo "delete:"$namesu hdfs -c "hadoop fs -rm -r -skipTrash $name"fidone}cleanTmpFile /tmp/hive/*/*
cleanTmpFile "/warehouse/tablespace/*/hive/*/.hive-staging_*"
cleanTmpFile "/warehouse/tablespace/*/hive/*/*/.hive-staging_*"

配置crontab,每天凌晨2点执行,清理30天以前的目录

0 2 * * * sh /data/script/clean_hive_tmpfile.sh 30 >> /tmp/clean_hive_tmpfile.log

参考:
https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties#ConfigurationProperties-hive.start.cleanup.scratchdir
https://www.cnblogs.com/ucarinc/p/11831280.html
https://blog.csdn.net/zhoudetiankong/article/details/51800887
http://t.zoukankan.com/telegram-p-10748530.html

http://www.lryc.cn/news/25382.html

相关文章:

  • 如何创建发布新品上市新闻稿
  • 关于.bashrc和setup.bash的理解
  • 03 Android基础--fragment
  • Redis使用,AOF、RDB
  • SOLIDWORKS Premium 2023 SP1.0 三维设计绘图软件
  • PyQGIS开发--自动化地图布局案例
  • 严格模式和非严格模式下的this指向问题
  • vue2、vue3组件传值,引用类型,对象数组如何处理
  • 165. 小猫爬山
  • ECharts教程(详细)
  • pinia
  • mysql中insert语句的五种用法
  • YOLOV7模型调试记录
  • 模拟光伏不确定性——拉丁超立方抽样生成及缩减场景(Matlab全代码)
  • Elasticsearch聚合查询速览
  • CEC2017:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解cec2017(提供MATLAB代码)
  • Vue3 企业级项目实战:通关 Vue3 企业级项目开发,升职加薪快人一步
  • vue样式绑定(v-if)
  • 无需公网IP,安全稳定实现U8C异地访问
  • Graph Neural Network(GNN)图神经网络
  • JSTL核心库的简单使用
  • ffmpeg.dll丢失怎么办,有什么修复ffmpeg.dll的方法
  • 【学习笔记】NOIP爆零赛9
  • SpringMVC的常用组件和工作流程及部分注解解析
  • 创建Firebase项目并接入Firebase推送: Firebase Cloud Messaging (FCM)
  • MyBatis的简单使用
  • 最新的Windows docker安装方法
  • 2023软件测试工程师涨薪攻略,3年如何达到30K
  • 【算法题】1927. 求和游戏
  • 有趣的 Kotlin 0x10:操作符 ..<