由于hive执行过程中参数必须写死,无法进行传递参数。利用shell脚本和java编程进行解决

#!/bin/sh
#date = `date -d -1days '+%Y-%m-%d'`
if [ $# = "1" ]; then
date=$1
else
date=`date -d -1days '+%Y-%m-%d'`
fi

echo $date

#如果没传递参数的话,拿到前一天的时间

cd /opt/cloudy/program/rpt_sale_daily

#打开指定目录
hiveF ./rpt_sale_daily.hql -date $date

#执行hiveF 进行数据分析和抽取

hive2mysql ./aa.property -date $date

#把抽取的数据加载到mysql数据库中

其中hiveF 和hive2mysql是利用java进行开发

(hiveF ./rpt_sale_daily.hql -date $date)

在hiveF中,java读取此hql脚本进行替换date字符,然后执行

sql=`java -jar /opt/cloudy/lib/hiveF.jar $*`

#执行java拿到sql命令
echo $sql
hive -e "$sql" -i /opt/cloudy/bin/hiveF-init.sql

#hive -e 在shell命令行中执行hive命令 -i用于传递UDF

(hive2mysql ./aa.property -date $date)

java -jar /opt/cloudy/lib/hive2mysql.jar $*

#执行jar命令替换参数并且在java中执行hive和mysql命令

理解:其中核心在hiveF和hive2mysql的理解 hiveF负责分析本地HDFS的文件落地到hive得到数据结果 hive2mysql用于把hive数据转移到mysql中 (-i用于更好的管理UDF文件)
~

最新文章

  1. Util应用程序框架公共操作类(五):异常公共操作类
  2. DotNetCore跨平台~Startup类的介绍
  3. HDU 4605 Magic Ball Game(离线算法)
  4. hiho_1058_combination_lock
  5. HDU 4588 Count The Carries(找规律,模拟)
  6. Debian安装Apache2+MySQL5+PHP5(zz)
  7. 【BZOJ 1040】 [ZJOI2008]骑士
  8. CentOS7安装mysql-server
  9. xapian安装
  10. MEMS开关
  11. ssh登录的时候,根本不给输入密码的机会,直接拒绝,是因为BatchMode的设置
  12. linux下swoole的安装
  13. 【CSS】background 的覆盖
  14. .NET Core微服务系列基础文章索引(目录导航Final版)
  15. sql - 递归update
  16. 升级安装APK兼容Android7.0,解决FileUriExposedException
  17. python3 验证码去噪
  18. Linux中的共享链接库shared libraries
  19. 【Xmail】使用Xmail搭建局域网邮件服务器
  20. 【跨域】#001 JSONP原理解析【总结】

热门文章

  1. markdown实现页内目录跳转
  2. 压测:mysqlslap
  3. <scrapy爬虫>scrapy命令行操作
  4. 【LGP5349】幂
  5. 牛客网NOIP赛前集训营-普及组(第七场)
  6. 在页面上显示PDF
  7. QTableView的indexAt使用方法
  8. C++ 系列:Boost Thread 编程指南
  9. 读《深入PHP 面向对象、模式与实践》笔记
  10. DataTime 和 时间转化