2017-01-10 1 views
0

Ich habe eine Reihe von Hive-Abfragen und das Ausführen als Job. zum Beispiel: hive1.hql, hive2.hql, hive3.hql Während ich laufe, muss ich jeden Dateinamen mit der Zeit schreiben, die von Abfragen genommen wird, die in .hql geschrieben sind. Ausgabe sollteWie bekomme ich die Zeit von HiveQL-Skripten

wie

hive1.hql 30 sec

hive2.hql 22 sec

hive3.sql 11 sec

sein, wie ich diese Skripte mit HIVE & SHELL erreichen können. Vielen Dank im Voraus!

Antwort

0

Sie können den folgenden Code verwenden.

(Bitte beachten Sie dieser Code könnte einige Änderungen nach Ihrem Bedarf benötigt)

######################################################################### 
############################# 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; 

this helps

+0

Vielen Dank Bhavesh – BigD

+0

Always Welcome !!! ... – Bhavesh

Verwandte Themen