shell 脚本运行 hive sql

#!/b

START=$(date +%s);

datebegin=`date -d "$1" "+%Y%m%d"`
dateend=`date -d "$2" "+%Y%m%d"`
sdate=`date -d "$datebegin -1 days" "+%Y%m%d"`

while [ "$datebegin" -le "$dateend" ]
do
echo $datebegin

/usr/local/hivebi/bin/hive<<EOF

--hive sql like:
DROP TABLE IF EXISTS yourDB.yourTableName;

EOF

datebegin=`date -d "$datebegin +1 day " +%Y%m%d`

sdate=`date -d "$sdate +1 day " +%Y%m%d`

done

END=$(date +%s);
echo $((END-START)) | awk ‘{print int($1/3600)":"int($1%3600/60)":"int($1%3600%60)}‘

使用方法:

chmod +x test.sh

./test.sh 20160505 20160506

其中 -- 是 hive sql 中的注释符号.

时间: 2024-10-25 21:53:54

shell 脚本运行 hive sql的相关文章

基于sparksql调用shell脚本运行SQL

[Author]: kwu 基于sparksql调用shell脚本运行SQL,sparksql提供了类似hive中的 -e  , -f ,-i的选项 1.定时调用脚本 #!/bin/sh # upload logs to hdfs yesterday=`date --date='1 days ago' +%Y%m%d` /opt/modules/spark/bin/spark-sql -i /opt/bin/spark_opt/init.sql --master spark://10.130.2

由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考

背景 我们使用的HiveServer2的版本为0.13.1-cdh5.3.2,目前的任务使用Hive SQL构建,分为两种类型:手动任务(临时分析需求).调度任务(常规分析需求),两者均通过我们的Web系统进行提交.以前两种类型的任务都被提交至Yarn中一个名称为“hive”的队列,为了避免两种类型的任务之间相互受影响以及并行任务数过多导致“hive”队列资源紧张,我们在调度系统中构建了一个任务缓冲区队列,所有被提交的任务(手动任务.调度任务)并不会直接被提交至集群,而是提交至这个缓冲区队列中,

Linux/Unix shell 脚本中调用SQL,RMAN脚本

Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可少的技能之一.本文针对Linux/Unix shell脚本调用sql, rman 脚本给出了相关示例. 一.由shell脚本调用sql,rman脚本 [python] view plain copy print? 1.shell脚本调用sql脚本 #首先编辑sql文件 [email protecte

Shell脚本中执行sql语句操作

这篇文章主要介绍了Shell脚本中执行sql语句操作mysql的5种方法,本文讲解了将SQL语句直接嵌入到shell脚本文件中.命令行调用单独的SQL文件.使用管道符调用SQL文件等方法,需要的朋友可以参考下 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的结果美化,需要进一步完善和调整.以下为具体的示例及其方法. 1.将SQL语句直接嵌入到sh

windows下建立文件的换行符^M导致linux下的shell脚本运行错误的解决方案

经常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M,这将导致shell脚本运行错误,主要是因为dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主要解决如下: (1)在VI编辑器中将^M删除: 将VI编辑器切换到命令模式下,输入 :%s/^M//g (注意^M 不是shift ^ +M 而是ctrl+v 加上ctrl+m)  s///g是shell的替换命令 此命令必须是手动打上,不可复制. (2)dos2unix 命令 dos2unix f

Shell脚本执行hive语句 | hive以日期建立分区表 | linux schedule程序

#!/bin/bash source /etc/profile; ################################################## # Author: ouyangyewei # # # # Content: Combineorder Algorithm # ################################################## # change workspace to here cd / cd /home/deploy/rec

shell脚本运行报错$&#39;\r&#39;: command not found

执行个别shell测试脚本运行报错$'\r': command not found 考虑到可能是windows与Linux的换行符不同的原因(windows是\r\n,Linux是\n)造成的,但是又不想一个个替换. 可以使用如下命令来解决: # vi 脚本名 命令行模式下输入: :set ff=unix :wq 退出即可 shell脚本运行报错$'\r': command not found 原文地址:https://www.cnblogs.com/abclife/p/12604441.htm

Ubuntu下shell脚本运行异常:bash和dash的区别

Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\nTest\n"是不会输出"-e"的. 我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向dash. echo $SHELL

在shell脚本中调用sql语句

查询员工信息 -S:静默登录 [[email protected] shells]$ cat shell1.sh #!/bin/bash #查询员工信息 sqlplus -S /nolog <<EOF conn scott/scott set feedback off set linesize 300 set pagesize 100 col empno for 99999 col ename for a12 col mgr for 9999 col hiredate for a20 col