并行执行hive脚本
### 模板脚本存放路径(无需修改)
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脚本的更多相关文章
- Hadoop生态圈-Azkaban实现hive脚本执行
Hadoop生态圈-Azkaban实现hive脚本执行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客中在HDFS分布式系统取的数据,而这个数据的是有之前我通过MapRed ...
- HUE中Oozie执行Hive脚本
Oozie执行hive,传入参数1. 新建一个workflow 2. 拖入一个hive2 3. hive脚本如下 CREATE TABLE IF NOT EXISTS spider_tmp.org_i ...
- Hive脚本中切勿使用/**/注释
Hive脚本中切勿使用/**/注释 Hive脚本的注释目前好像只有 -- ,我之前在做初版数据的时候 使用NotePad++ 习惯性的有时候注释会写成 /**/ ,然后就引发了问题 脚本上传到hue, ...
- Beeline里面执行hive脚本 函数nvl2()与replace()报错
Beeline里面执行hive脚本函数nvl2()与replace()报错 写脚本的时候是在impala里面执行的,都正常,但是转换为调度的时候是在beeline里面执行的 就会有问题了. 详情如下: ...
- 12_Azkaban案例实践5_Command操作Hive脚本任务
HIVE脚本任务 hadoop fs -mkdir -p /aztest/hiveinput hadoop fs -put az.data /aztest/hiveinput/ l 创建job描述文件 ...
- 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 ...
- shell命令执行hive脚本(hive交互,hive的shell编程)
Hive执行方式 Hive的hql命令执行方式有三种: 1.CLI 方式直接执行 2.作为字符串通过shell调用hive –e执行(-S开启静默,去掉"OK","Tim ...
- python 中写hive 脚本
1.直接执行.sql脚本 import numpy as np import pandas as pd import lightgbm as lgb from pandas import DataFr ...
- Hive 脚本执行
hive执行脚本 hive -e “sql语句” 会将查询的结果打印在控制台上. hive -e “sql语句” >> xxx 会将查询的结果重定向到xxx文件中,会显示OK和抓取的数据 ...
随机推荐
- 51NOD1835 完全图
传送门 分析 令f(i,j)表示i点完全图有j个联通块的方案数. 讨论有i-1个点已经固定了,我们拉出一个代表元素然后讨论它的集合大小然后组合数算一下就可以了. $$ dp(i,j) = \sum_{ ...
- 删除匹配某个pattern的一组键
删除匹配某个pattern的一组键 $redis = cmsRedis::getInstance(); $sq_nos = $redis->keys('show_package_info:seq ...
- android listview addHeaderView和addFooterView的注意事项
1. item内如果有button等控件时,在监听listview的onitemclick事件时,焦点会被item内的button. imagebutton等控件抢走,从而导致在listview设置了 ...
- Spring MVC 简介
- python:格式化输出整数
import math #default print "PI = %f" % math.pi #width = 10,precise = 3,align = left print ...
- HTTP 协议 -- 状态码
HTTP 协议状态码(Http Status Code) 使用ASP.NET/PHP/JSP 或者javascript都会用到http的不同状态,一些常见的状态码为: 200 – 服务器成功返回网页 ...
- DotNet经典面试题(转载)
.Net基础常见 什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS.CLS.CLR分别作何解释? 答: 1应用程序域可以理解为一种轻量级进程.起到安全的作用 ...
- I - 一次元リバーシ / 1D Reversi(水题)
Problem Statement Two foxes Jiro and Saburo are playing a game called 1D Reversi. This game is playe ...
- linux 远程连接ssh提示 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY解决
Linux ssh 远程登录到其他机器上时,有时会出现登不进去,并弹出如下类似提示的情况: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...
- Python中的Numpy包
通过本次学习你可以掌握Numpy Numpy介绍(获取地址)更多Numpy函数 numpy的主要对象是同质多维数组.也就是在一个元素(通常是数字)表中,元素的类型都是相同的. numpy的数组类被成为 ...