sparksql支持传参数的封装

sparkF里面:

#!/etc/profile

sql='java -jar /opt/cloudy/spark/sparkF.jar $*'

echo $sql

spark-sql -e "$sql" -i /opt/cloudy/bin/hive-init.sql

==

从上面可以得知,udf还是hive的udf,只不过命令改成了spark。

上一篇中已经给出了aa.sql

写一个自动化脚本daily_visit.sh

!#/bin/sh

if [ $# = "1" ]: then

date=$1

else 

date='date -d -1days '+%Y-%m-%d*'

fi

echo $date

cd /opt/cloudy/spark/script

sparkF ./daily_visit.sql -dateStr $date

if test $? -ne 0

then

exit 11

fi

执行:

./daily_visit.sh 2015-08-28

==

资源划分:

在sparkf里面的spark-sql -e "$sql" -i /opt/cloudy/bin/hive-init.sql --driver-memory 1g 等等

==

etl:数据抽取,数据加工,数据落地

用途:报表(关系形数据库)

计算和展示报表:传统做法,查询时即时计算(报表查询越来越慢),现在的做法就是计算和查询展示分离,提前计算好,查询时直接展示。

报表数据库:mysql等关系数据库

不可能用hive直接出报表,因为从hive出来很多时候需要计算,而报表系统是成熟的产品

所以需要把hive统计好的结果数据导入到关系db如mysql里面

hive的作业案例:more rpt_sale_daily.sh

#!/bin/sh

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

if test $? -ne 0

then

exit 11

fi


hive2mysql ./aa.property -date $date --作用就是把结果数据从hive导入到mysql,用于报表展示。

if test $? -ne 0

then

exit 21

fi

echo "123"

===

 hive2mysql开源框架有sqoop,但是sqoop export的稳定行不行,而且不灵活,通常只用sqoop import

(从关系db导入到hive或hdfs)

统计好的结果数据通常是小数据量,通常不需要sqoop等分布式框架。

所以可以自己开发一个hive2mysql框架,原理是用java封装,通过hive jdbc的方式查hive,然后把结果集insert到mysql(批处理insert)。

===

架构师的工作就是简化,方便于开发人员,做spark开发最主要就是sql。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值