Spark 任务提交脚本
说明
该脚本是根据输入起始日期-结束日期,执行从数据库拉取日期间隔数据到HDFS。日期间隔中的日期就是每一年的自然日。
日期格式可以是以下几种:
2018-01-01 2018-12-31 [-][/][.]['']
2018/01/01 2018/12/31 [-][/][.]['']
20180101 20181231 [-][/][.]['']
代码片段
if [[ $# -le || $# -gt ]]; then
echo "Usage: $0 2018-01-01 2018-12-31 or $0 2018/01/01 2018/12/31 or $0 20180101 20181231 [-][/][.]['']"
exit
fi START_DAY=$(date -d "$1" +%s)
END_DAY=$(date -d "$2" +%s)
SPLITER=${} declare -a DATE_ARRAY function getDateRange
{
if [[ $# -ne ]]; then
echo "Usage: getDateRange 2018-01-01 2018-12-31 or getDateRange 2018/01/01 2018/12/31 or getDateRange 20180101 20181231 [-][/][.]['']"
exit
fi START_DAY_TMP=${}
END_DAY_TMP=${}
SPLITER_TMP=${}
I_DATE_ARRAY_INDX= while (( "${START_DAY_TMP}" <= "${END_DAY_TMP}" )); do
cur_day=$(date -d @${START_DAY_TMP} +"%Y${SPLITER_TMP}%m${SPLITER_TMP}%d")
DATE_ARRAY[${I_DATE_ARRAY_INDX}]=${cur_day} START_DAY_TMP=$((${START_DAY_TMP}+))
((I_DATE_ARRAY_INDX++)) done
} getDateRange "${START_DAY}" "${END_DAY}" "${SPLITER}" . /etc/profile.d/custom.sh for SINGLE_DAY in ${DATE_ARRAY[@]};
do #replace your task command in this line
echo `spark-submit --master yarn --deploy-mode client --packages "mysql:mysql-connector-java:6.0.6" --num-executors --executor-memory 4G --class "com.cm.data.datasync.ReadLogDb2HDFS" /home/ubuntu/target/data_analysis-1.0..jar order_log_${SINGLE_DAY} `
done exit
下载地址:Shell
最后奉送 nohub 方式命令 ./spark_submit_script.sh 20180101 20180823 '' > spark_task_2018.out 2>&1 &
一样的颜色的地方可以使用 [-][/][.][''] 替换
Spark 任务提交脚本的更多相关文章
- Spark集群模式&Spark程序提交
Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos- ...
- spark任务提交到yarn上命令总结
spark任务提交到yarn上命令总结 1. 使用spark-submit提交任务 集群模式执行 SparkPi 任务,指定资源使用,指定eventLog目录 spark-submit --class ...
- Spark学习(四) -- Spark作业提交
标签(空格分隔): Spark 作业提交 先回顾一下WordCount的过程: sc.textFile("README.rd").flatMap(line => line.s ...
- Spark配置&启动脚本分析
本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...
- Spark任务提交底层原理
Driver的任务提交过程 1.Driver程序的代码运行到action操作,触发了SparkContext的runJob方法.2.SparkContext调用DAGScheduler的runJob函 ...
- shell 脚本实战笔记(10)--spark集群脚本片段念念碎
前言: 通过对spark集群脚本的研读, 对一些重要的shell脚本技巧, 做下笔记. *). 取当前脚本的目录 sbin=`dirname "$0"` sbin=`cd &quo ...
- git自动提交脚本
每次在linux都要重新一遍一遍敲着这些重复的代码,我想着能够优化一下,做个一键脚本,减少重复劳动. #!/bin/bash git status read -r -p "是否继续提交? [ ...
- Spark作业提交至Yarn上执行的 一个异常
(1)控制台Yarn(Cluster模式)打印的异常日志: client token: N/A diagnostics: Application application_1584359 ...
- Spark学习之路 (十六)SparkCore的源码解读(二)spark-submit提交脚本
一.概述 上一篇主要是介绍了spark启动的一些脚本,这篇主要分析一下Spark源码中提交任务脚本的处理逻辑,从spark-submit一步步深入进去看看任务提交的整体流程,首先看一下整体的流程概要图 ...
随机推荐
- ios学习--TableView详细解释
-.建立 UITableView DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)]; [DataTa ...
- django restframework 教程之Serialization(序列化)
介绍 本教程将会通过创建一个简单的粘贴代码项目,突出显示WebAPI,过程中,会介绍组成REST框架的各种组件,让你全面了解如何配合使用. 环境设置 建议使用virtualenv建立新的虚拟环境,确保 ...
- MUI 图标筛选切换(父页面传值子页面)
1 父页面: index.html <li class="tab_layout"> <a href="javascript:;" clas ...
- ios 自定义NavgationBar的按钮
UIImage *btnimage = [UIImage imageNamed:@"about.png"]; UIButton *btn = [[UIButton alloc] i ...
- Appium中长按按钮操作
在一次项目中,appium要对某个按钮进行长按操作(大于2s),类似拍微信小视频,参考网上长按视频会报错 action1 = TouchActions(self.driver) el = self.d ...
- Think PHP递归获取所有的子分类的ID (删除当前及子分类)
递归获取所有的子分类的ID: //递归获取所有的子分类的ID function get_all_child($array,$id){ $arr = array(); foreach($array as ...
- pandas的Categorical方法
对于数据样本的标签,如果我们事先不知道这个样本有多少类别,那么可以对数据集的类别列进行统计,这时我们用pandas的Categorical方法就非常快的实现. 1.说明: 你的数据最好是一个serie ...
- python bug the C library strftime function.
import timedef date2mktime(date, format_='%Y-%m-%d'): return int(time.mktime(time.strptime(date, for ...
- Qt::浅谈信号槽连接,参数在多线程中的使用
Qt的信号槽有五种连接方式定义在enum Qt::ConnectionType,下面简单介绍 Qt::AutoConnection:自动判断连接方式,如果信号发送对象和执行槽对象在同一线程,那么等于Q ...
- JS模块化方案