hive,sqoop定时执行脚本举例

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


你可能感兴趣的:(hive,sqoop定时执行脚本举例)