cdh中使用beeline跑SQL脚本,并且加入kerberos认证

在离线数仓中每天都会调度使用脚本,但绝大多数任务都是通过调度框架直接来调度使用的,现在写一个跑hive脚本的beeline的同步脚本,和对于kerberos认证的免密认证,确保调度能执行成功,脚本如下:

#!/bin/bash
kinit -kt /root/admin.keytab /

start="beeline "

stg="--hivevar stg=stg "

ods="--hivevar ads_db=ods "

ads="--hivevar ads_db=ads "

dwd="--hivevar dwd_db=dwd "

dw="--hivevar dw_db=dw "

dws="--hivevar dws_db=dws "

test="--hivevar test=test "

dt1=($(date +"%Y-%m-%d" -d "-1day"))

dt2=($(date +"%Y-%m-%d" -d "-0day"))

mon1=($(date -d "-1month" +%Y-%m))

mon2=($(date -d "${dt2}" +%Y-%m))

start_dt="--hivevar start_dt=${dt1} "

end_dt="--hivevar end_dt=${dt2} "

last_mon="--hivevar last_mon=${mon1} "

cur_mon="--hivevar cur_mon=${mon2} "

end="-u 'jdbc:hive2://cdh1:10000/;principal=hive/cdh1领域名' --silent=true --outputformat=tsv2 --showHeader=false -f"

m=${start}${stg}${ods}${dwd}${dw}${dws}${test}${start_dt}${end_dt}${last_mon}${cur_mon}${end}

echo "初始化配置${m}开始执行SQL文件"
${m} $1
echo "执行SQL文件完毕"

其中中间那些参数是进行跑SQL文件的动态参数,之所以这样设置是离线数仓的时间和月份都是变化的,还有就是其中对应的数据库名也有很多,这样就能实现动态的同步执行,后面的$1就是SQL文件路径了,通过调度框架只要这样配置路径就能跑,--silent=true --outputformat=tsv2 --showHeader=false这个命令是将其中的beeline的日志减少,使调度日志更加简洁,其中kinit -kt /root/admin.keytab /是进行kerberos认证的文件的形式,有2种,但如果是使用脚本的方式就一定要用这个认证,这样可以减少输入密码这一步,以上就是离线数仓进行调度脚本的deeline执行任务


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值