如何获取hiveQL脚本所需的时间

时间:2017-01-10 09:43:24

标签: bash shell unix hadoop hive

我有一组hive查询并将其作为一项工作运行。 例如:hive1.hql,hive2.hql,hive3.hql 在运行时我需要用.hql中编写的查询写入每个文件名。 输出应该像

hive1.hql 30秒

hive2.hql 22秒

hive3.sql 11秒

我如何通过HIVE& amp; SHELL脚本。 在此先感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码。

(请注意,此代码可能需要根据您的需要进行一些更改)

#########################################################################
#############################  DRAFT SCRIPT   ########################
### HEADER - PROGRAM NAME - <Temp.sh>                                   
#########################################################################
#########################################################################
##################################
###DEFINING THE LOCAL VARIABLES###
##################################

DATE=$(date +"%Y%m%d_%H%M%S")

LOGFILE="/home/LOG/"$DATE".log"

echo "Executing hive script " >> $LOGFILE

START=$(date +%s);

hive -f /home/HIVE/hive1.hql

END=$(date +%s);
echo "hive1.hql" 

echo $((END-START)) | awk '{print int($1/60)":"int($1%60)}'

echo "Hive1 process is done";

START1=$(date +%s);

hive -f /home/HIVE/hive2.hql

END1=$(date +%s);

echo "hive2.hql" 

echo $((END1-START1)) | awk '{print int($1/60)":"int($1%60)}'

echo "Hive2 process is done";

exit;

希望这有助于