hive:
#! /bin/sh
date="$1"
enddate=`date -d "+1 day $2" +%Y-%m-%d`
while [[ $date < $enddate ]]
do
echo "${date} HIVE 数据处理开始..."
hive -e "
#set mapred.reduce.tasks=2;
load data inpath '/media/${date}/result/part-r-00000' into table tvdata;
insert overwrite table result_column_min partition (tvdate='${date}') select
tvcolumn,tvmin,avgnum,reachnum,tvrating,reachrating,marketshare from tvdata where tvdate='${date}';
insert overwrite table result_column_hour partition (tvdate='${date}') select
tvcolumn,concat(substr(tvmin,0,2),':00'),sum(avgnum)/count(*),sum(reachnum)/count(*),sum(tvrating)/count(*),sum(reach
rating)/count(*),sum(marketshare)/count(*) from result_column_min where tvdate='${date}'
group by tvcolumn, concat(substr(tvmin,0,2),':00');
insert overwrite table result_column_day partition (tvdate='${date}') select
tvcolumn,sum(avgnum)/count(*),sum(reachnum)/count(*),sum(tvrating)/count(*),sum(reachrating)/count(*),sum(marketsh
are)/count(*) from result_column_min where tvdate='${date}' group by tvcolumn;
exit;
"
date=`date -d "+1 day $date" +%Y-%m-%d`
echo "${date} HIVE 数据处理结束..."
done
sqoop:
#! /bin/sh
date="$1"
enddate=`date -d "+1 day $2" +%Y-%m-%d`
while [[ $date < $enddate ]]
do
echo "${date} SQOOP 数据处理开始..."
sqoop export --connect jdbc:mysql://db.dajiangtai.net:3306/djtdb_tv --username username --password pwd --table
result_column_min --export-dir /user/hive/warehouse/result_column_min/mediadate=$date --input-fields-terminated-by
'@';
sqoop export --connect jdbc:mysql://db.dajiangtai.net:3306/djtdb_tv --username username --password pwd --table
result_column_hour --export-dir /user/hive/warehouse/result_column_hour/tv_date_min=$date
--input-fields-terminated-by '@';
sqoop export --connect jdbc:mysql://db.dajiangtai.net:3306/djtdb_tv --username username --password pwd --table
result_column_day --export-dir /user/hive/warehouse/result_column_day/tv_date_min=$date
--input-fields-terminated-by '@';
date=`date -d "+1 day $date" +%Y-%m-%d`
echo "${date} SQOOP 数据处理结束..."
done