共计 479 个字符,预计需要花费 2 分钟才能阅读完成。
hive 在运行过程中,会发现 hdfs /tmp/hive/hive or hdfs 目录占用空间巨大!
hive 在运行过程中会生产大量的中间会话在 /tmp 目录下,
如果 hive 正常运行结束,临时会话会被自动清理掉,
如果 hive 中断,或者异常退出,这些中间会话就会一直保存在 hdfs 上。必须手动清理掉!
#!/bin/bash
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 –
(
d
a
t
e
−
d
”
(date -d ”
(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}'
;
fi
done
原文地址: hive 异常任务中间数据清理
正文完