### 模板脚本存放路径(无需修改)
cd /tmp/fix_data/tmp_wjj_20180322_01
### 脚本名称
script=tmp_wjj_20180322_01
### 开始日期(包括当月/天)
etl_dt_start='2017-09-01'
### 结束日期(不包括当月/天)
etl_dt_end='2016-12-01'
### 并发数(请勿设置高于10)
thread_num=
### task数量(设置spark_sql的task数量,如果数据量过亿,可适量调高)
partitions=
### 以下无需修改
thread_no=
spark="beeline -u jdbc:hive2://ip:port -n username -p password --verbose=true"
hive="hive -v"
excute=${spark}
### 删除执行脚本内容
cat /dev/null > run_sql_${script}
### to do: 根据进程数进行判断
while [[ ${etl_dt_start} > ${etl_dt_end} ]]
do
echo ${etl_dt_start}
etl_dt_start_str=`echo ${etl_dt_start}|sed 's/-/_/g'`
echo "select 'job_start' as flag,'${etl_dt_start}' as num,current_timestamp() as time;" > ${script}_${etl_dt_start_str}
echo "set spark.sql.shuffle.partitions=${partitions};" >> ${script}_${etl_dt_start_str}
echo "use db_name;" >> ${script}_${etl_dt_start_str}
echo "set mapred.job.queue.name=queue_name;" >> ${script}_${etl_dt_start_str}
echo "set hive.exec.dynamic.partition=true;" >> ${script}_${etl_dt_start_str}
echo "set hive.exec.dynamic.partition.mode=nonstrict;" >> ${script}_${etl_dt_start_str}
sed "s/2017-10-01/${etl_dt_start}/g" ${script} >> ${script}_${etl_dt_start_str}
echo "select 'job_finish' as flag,'${etl_dt_start}' as num,current_timestamp() as time;" >> ${script}_${etl_dt_start_str} thread_no=$((${thread_no}+))
echo "${excute} -f ${script}_${etl_dt_start_str} > ${script}_${etl_dt_start_str}_log 2>&1 &" >>run_sql_${script}
if [[ $((${thread_no}%${thread_num})) == ]]
then
echo "wait" >>run_sql_${script}
fi
### etl_dt_start=`date -d "+1 days ${etl_dt_start}" +%Y-%m-%d`
etl_dt_start=`date -d "-1 months ${etl_dt_start}" +%Y-%m-%d`
done ### 执行初始化
sh run_sql_${script} ### 查看执行时间
# grep -E "job_start|job_finish" ${script}_*_log|grep -v select

并行执行hive脚本的更多相关文章

  1. Hadoop生态圈-Azkaban实现hive脚本执行

    Hadoop生态圈-Azkaban实现hive脚本执行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客中在HDFS分布式系统取的数据,而这个数据的是有之前我通过MapRed ...

  2. HUE中Oozie执行Hive脚本

    Oozie执行hive,传入参数1. 新建一个workflow 2. 拖入一个hive2 3. hive脚本如下 CREATE TABLE IF NOT EXISTS spider_tmp.org_i ...

  3. Hive脚本中切勿使用/**/注释

    Hive脚本中切勿使用/**/注释 Hive脚本的注释目前好像只有 -- ,我之前在做初版数据的时候 使用NotePad++ 习惯性的有时候注释会写成 /**/ ,然后就引发了问题 脚本上传到hue, ...

  4. Beeline里面执行hive脚本 函数nvl2()与replace()报错

    Beeline里面执行hive脚本函数nvl2()与replace()报错 写脚本的时候是在impala里面执行的,都正常,但是转换为调度的时候是在beeline里面执行的 就会有问题了. 详情如下: ...

  5. 12_Azkaban案例实践5_Command操作Hive脚本任务

    HIVE脚本任务 hadoop fs -mkdir -p /aztest/hiveinput hadoop fs -put az.data /aztest/hiveinput/ l 创建job描述文件 ...

  6. hive脚本出现Error: java.lang.RuntimeException: Error in configuring object和Caused by: java.lang.IndexOutOfBoundsException: Index: 9, Size: 9

    是在reduce阶段报的错误,详细错误信息是 朱传豪 19:04:48 Diagnostic Messages for this Task: Error: java.lang.RuntimeExcep ...

  7. shell命令执行hive脚本(hive交互,hive的shell编程)

    Hive执行方式 Hive的hql命令执行方式有三种: 1.CLI 方式直接执行 2.作为字符串通过shell调用hive –e执行(-S开启静默,去掉"OK","Tim ...

  8. python 中写hive 脚本

    1.直接执行.sql脚本 import numpy as np import pandas as pd import lightgbm as lgb from pandas import DataFr ...

  9. Hive 脚本执行

    hive执行脚本 hive -e “sql语句” 会将查询的结果打印在控制台上.  hive -e “sql语句” >> xxx 会将查询的结果重定向到xxx文件中,会显示OK和抓取的数据 ...

随机推荐

  1. Codeforces 960F 线段树

    题意:https://blog.csdn.net/qq_39809664/article/details/79871282 思路:我们考虑LIS的状态转移,对于这个题,假设现在扫描到的边是(u, v, ...

  2. php入门学习

    尤其不认可W3school之类的东西,不够深度,理解不深,比起这个更建议看官方文档,中文不清楚,看英文的. 入门视频:入门视频推荐:哈佛大学公开课:构建动态网站Beginner PHP and MyS ...

  3. 面试题: Struts2

    1. Struts2与Struts1的联系与区别是什么?为什么要用Struts2? 答案: struts1与struts2都是mvc框架的经典实现模式. Struts2不是从Struts1升级而来,而 ...

  4. 229B Planets

    传送门 题目大意 有编号1~n的星球,在不用的星球间共有m个传送门,任意两个星球间传送门不超过1个,每个传送门需要花费一定的时间,但是在某时刻会在某星球有旅客到达,这时要一定等到没有旅客到达的时候才能 ...

  5. Luogu 4867 Gty的二逼妹子序列

    BZOJ3809,是权限题. 我永远喜欢莫队. 先莫队一下移下左右指针,然后用一个数据结构维护一下区间$[a, b]$中的颜色的值,跟着指针移动一起修改修改,每一次$query$的时候就相当于查询一下 ...

  6. Mybatis避免出现语法错

    在使用MyBatis的时候,可能会看起来没有问题,但是代码运行的时候出现意想不到的错误. 看如下代码: <update id="updateByPrimaryKeySelective& ...

  7. 国外物联网平台(3):IBM Watson IoT

    国外物联网平台(3)——IBM Watson IoT 马智 平台定位 提供全面管理的云托管服务,旨在简化并从 IoT 设备中获得价值. Watson IoT Platform 提供对 IoT 设备和数 ...

  8. win8使用every'thing无法显示搜索结果的解决方法

    关键词: win8,everything,无搜索结果 进入everything ,tools->option右下角有个 restore defaults 如果安全软件阻拦,点击  允许 就行了, ...

  9. Linux - 在 CentOS 7 上部署 Google BBR

    BBR(Bottleneck Bandwidth and RTT)是一种新的拥塞控制算法,由Google开发.有了BBR,Linux服务器可以显着提高吞吐量并减少连接延迟. Step 1: Upgra ...

  10. .Net Core下基于NPOI对Excel、Word操作封装

    本库进行了重写,如果需要请转移到下文查看: https://www.cnblogs.com/holdengong/p/10889780.html 框架与依赖 框架:.NET Standard 2.0 ...