### 模板脚本存放路径(无需修改)
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. 基于IFC的大型三维城市群体——智慧城市模拟

  2. 一个ButtonDemo的实现过程。

    来自JDK API 1.6.0: Try this: Click the Launch button to run the Button Demo using Java™ Web Start (dow ...

  3. ZROI2018提高day5t2

    传送门 分析 考场上傻了,写了个树剖还莫名weila...... 实际就是按顺序考虑每个点,然后从他往上找,一边走一边将走过的边染色,如果走到以前染过色的边就停下.对于每一个a[i]的答案就是之前走过 ...

  4. 628D Magic Numbers

    传送门 题目大意 定义n-magic为从左往右,偶数位置均为n,奇数位置不为n的一类数.求出[a,b]内所有可被m整除的d-magic个数. 分析 显然是数位dp,我们用dp[i][j][k]表示考虑 ...

  5. debug配置

  6. jquery 的插件 extend

      让我们来讲解  jquery中的插件机制  $.fn.extend and()  $.extend()这两个方法都接受一个参数,类型为Object.Object对象的“名/值对”分别代表“函数或方 ...

  7. Java Collection.RP

    在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结 ...

  8. 巧用 git rebase 合并多个 commit。

    一.为什么需要合并多个 commit 呢?   有时候,我们开发一个功能. 修修补补 commit 了很多次,过多的 commit 会显得很复杂. 不够直观,不能比较清晰查看那些 commit 是对应 ...

  9. 2014年第五届蓝桥杯省赛试题(JavaA组)

    1.结果填空 (满分2分)2.结果填空 (满分6分)3.结果填空 (满分7分)4.代码填空 (满分4分)5.代码填空 (满分12分)6.结果填空 (满分12分)7.结果填空 (满分9分)8.程序设计( ...

  10. 树莓派(Raspberry Pi 3) 使用wifi模块连接网络

    树莓派3B内置了wifi和蓝牙模块,启动WIFI模块有两种方式,一种是图形界面,一种是命令行模式. 使用图形界面: 在桌面右上角的菜单栏里面选择wifi,输入密码就可以了. 使用命令行: 第一步:配置 ...