ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 定时将数据导入到hive的shell脚本

定时将数据导入到hive的shell脚本

Linux操作系统 作者:破棉袄 时间:2015-05-12 09:46:53 0 删除 编辑

每日定时导入hive数据仓库的自动化脚本


创建shell脚本,创建临时表,装载数据,转换到正式的分区表中:


  1. #!/bin/sh
  2. # upload logs to hdfs
  3. yesterday=`date --date=\'1 days ago\' +%Y%m%d`
  4. hive -e \"
  5. use stage;
  6. create table tracklog_tmp (
  7. dateday string,
  8. datetime string,
  9. ip string ,
  10. cookieid string,
  11. userid string,
  12. logserverip string,
  13. referer string,
  14. requesturl string,
  15. remark1 string,
  16. remark2 string,
  17. alexaflag string,
  18. ua string,
  19. wirelessflag string
  20. )
  21. ROW FORMAT DELIMITED FIELDS TERMINATED BY \' \';\"
  22. hive -e \"
  23. use stage;
  24. set hive.enforce.bucketing=true;
  25. set hive.exec.compress.output=true;
  26. set mapred.output.compress=true;
  27. set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
  28. set io.compression.codecs=org.apache.hadoop.io.compress.GzipCodec;
  29. load data local inpath \'/diskg/logs/tracklog_192.168.1.1/${yesterday}/${yesterday}????.dat\' overwrite into table tracklog_tmp;
  30. insert into table tracklog PARTITION (day=\'${yesterday}\') select * from tracklog_tmp;
  31. load data local inpath \'/diskg/logs/tracklog_192.168.1.2/${yesterday}/${yesterday}????.dat\' overwrite into table tracklog_tmp;
  32. insert into table tracklog PARTITION (day=\'${yesterday}\') select * from tracklog_tmp;
  33. load data local inpath \'/diskg/logs/tracklog_192.168.1.3/${yesterday}/${yesterday}????.dat\' overwrite into table tracklog_tmp;
  34. insert into table tracklog PARTITION (day=\'${yesterday}\') select * from tracklog_tmp;
  35. load data local inpath \'/diskg/logs/trackloguc_192.168.1.1/${yesterday}/${yesterday}????.dat\' overwrite into table tracklog_tmp;
  36. insert into table tracklog PARTITION (day=\'${yesterday}\') select * from tracklog_tmp;
  37. load data local inpath \'/diskg/logs/trackloguc_192.168.1.2/${yesterday}/${yesterday}????.dat\' overwrite into table tracklog_tmp;
  38. insert into table tracklog PARTITION (day=\'${yesterday}\') select * from tracklog_tmp;
  39. load data local inpath \'/diskg/logs/trackloguc_192.168.1.3/${yesterday}/${yesterday}????.dat\' overwrite into table tracklog_tmp;
  40. insert into table tracklog PARTITION (day=\'${yesterday}\') select * from tracklog_tmp;
  41. \"
  42. hive -e \"
  43. use stage;
  44. drop table tracklog_tmp ;\"



在crontab中加入定时任务:


crontab -e 
加入如下代码:

#import tracklog
25  07 * * * /opt/bin/hive_opt/import_tracklog.sh


原文:http://www.aboutyun.com/thread-13052-1-1.html


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29754888/viewspace-1649771/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-07-16

  • 博文量
    180
  • 访问量
    1158161