基于Hive及Sqoop的每日PV、UV、IP定时分析

[Author]: kwu 

基于Hive及Sqoop的每日PV、UV、IP定时分析

1、创建pvuvip的hive表

[sql]  view plain copy
  1. hive -e "  
  2. use stage;  
  3. CREATE  EXTERNAL  TABLE pvuvip(  
  4.     day string,  
  5.     pv int,  
  6.     uv int,  
  7.     ipcnt int  
  8.   
  9. )  
  10. ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '  
  11. LOCATION '/dw/stage/pvuvip/';"  


2、创建mysql关系库的表

[sql]  view plain copy
  1. CREATE TABLE  
  2.     pvuvip  
  3.     (  
  4.         id INT NOT NULL AUTO_INCREMENT,  
  5.         DAY VARCHAR(50),  
  6.         pv INT,  
  7.         uv INT,  
  8.         ipcnt INT,  
  9.         PRIMARY KEY (id)  
  10.     )  
  11.     ENGINE=MyISAM DEFAULT CHARSET=latin1  



3、每日定时执行的自动化脚本

[plain]  view plain copy
  1. #!/bin/sh  
  2. # upload logs to hdfs  
  3.   
  4. yesterday=`date --date='1 days ago' +%Y%m%d`  
  5.   
  6. hive -e "  
  7. use stage;  
  8. insert overwrite table pvuvip select day,count(*) pv, count(distinct cookieid) uv , count(distinct ip) ipcnt from ods.tracklog where day='${yesterday}' group by day;"  
  9.   
  10.   
  11. sqoop export  --connect jdbc:mysql://localhost:3306/charts  --username root --password 123456 --table pvuvip --fields-terminated-by ' ' --columns "day,pv,uv,ipcnt" --export-dir /dw/stage/pvuvip/;  

4、在crontab中增加定时任务

[plain]  view plain copy
  1. 18  06 * * * /opt/bin/sqoop_opt/pvuvip.opt  

5、刷新定时任务

[plain]  view plain copy
  1. /sbin/service crond reload  

你可能感兴趣的:(hive,sqoop)