使用hive表的过程中经常需要一些便捷操作:
一、hdfs文件批量写SUCCESS文件,一般来说hive表生成结束,会产生一个_SUCCESS文件判断数据是否正常刷新完成
但是如果是动态分区插入表进行写文件,那么写_SUCCESS文件需要批量写到各个动态分区内。
可以使用以下代码片段在脚本结尾进行判断:#遍历目标文件目录,awk获取文件路径
for file in `HADOOP_HOME/bin/hadoop fs -ls $path | awk '{print $8}'`
do
#检查文件是否有数据写入
line_num=`$HADOOP_HOME/bin/hadoop fs -du -s $file | tail -1 | awk '{print $1}'`
if [[ $line_num -eq 0 ]]
then
echo "FATAL $V_PATH_DIR is empty"
else
echo "NOTICE success"
#创建_SUCCESS文件
$HADOOP_HOME/bin/hadoop fs -touchz $file /_SUCCESS
fi
二、hdfs文件批量添加||恢复分区
1、执行命令快速恢复MSCK REPAIR TABLE $tablename
2、写个shell脚本进行遍历循环恢复# !/bin/bash
start_dt=$1
end_dt=$2
level=$3
table=$4
filepath=$5