#!/bin/bash
startHive(){
source /etc/profile
source /etc/bashrc
APP_HOME=/usr/local/dataAnalysis/
CLASSPATH=${APP_HOME}/configig:/etc/hadoop/config:$APP_HOME/bin:$APP_HOME/dayReport-1.0.1-SNAPSHOT.jar
for i in "$APP_HOME"/lib/*.jar; do
CLASSPATH="$CLASSPATH":"$i"
done
#运行java程序将数据写入hdfs
java -classpath $CLASSPATH com.bitnei.assist.ToHive
#执行脚本,将hdfs的数据导入hive
hive -e "
use bigdata;
load data inpath '/spark/vehicle/result/test/ee.txt' OVERWRITE into table sys_vehicle_copy partition (year='$year',month='$month',day='$day');
set hive.exec.dynamic.partition.mode=nonstrict;
insert OVERWRITE table sys_vehicle partition(year,month,day) select * from sys_vehicle_copy ;
truncate table sys_vehicle_copy;
"
}
function batchProcess(){
curDate=$1
endDate=$2
year=$(echo $1 | cut -c 1-4)
month=$(echo $1 | cut -c 5-6)
day=$(echo $1 | cut -c 7-8)
while [[ "$curDate" -le "$endDate" ]] ; do
inputDate="$curDate-$curDate"
partitionValue=$( date -d"$curDate" '+%Y-%m-%d')
echo "begin execute $curDate"
startHive
sleep 1
curDate=$( date -d"$curDate +1day" '+%Y%m%d')
done
}
startDate="$(echo -e "$1" | tr -d '[:space:]')"
if [ "${#startDate}" == "0" ] ;
then startDate=$(date -d'-1day' +%Y%m%d)
else startDate=$1
fi
endDate="$(echo -e "$2" | tr -d '[:space:]')"
if [ "${#endDate}" == "0" ] ;
then endDate=$startDate
else endDate=$(date -d"$endDate" '+%Y%m%d' )
fi
echo "$startDate,$endDate"
echo "the inpute date are $inputDate"
batchProcess $startDate $endDate