说明

该脚本是根据输入起始日期-结束日期,执行从数据库拉取日期间隔数据到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 任务提交脚本的更多相关文章

  1. Spark集群模式&Spark程序提交

    Spark集群模式&Spark程序提交 1. 集群管理器 Spark当前支持三种集群管理方式 Standalone-Spark自带的一种集群管理方式,易于构建集群. Apache Mesos- ...

  2. spark任务提交到yarn上命令总结

    spark任务提交到yarn上命令总结 1. 使用spark-submit提交任务 集群模式执行 SparkPi 任务,指定资源使用,指定eventLog目录 spark-submit --class ...

  3. Spark学习(四) -- Spark作业提交

    标签(空格分隔): Spark 作业提交 先回顾一下WordCount的过程: sc.textFile("README.rd").flatMap(line => line.s ...

  4. Spark配置&启动脚本分析

    本文档基于Spark2.0,对spark启动脚本进行分析. date:2016/8/3 author:wangxl Spark配置&启动脚本分析 我们主要关注3类文件,配置文件,启动脚本文件以 ...

  5. Spark任务提交底层原理

    Driver的任务提交过程 1.Driver程序的代码运行到action操作,触发了SparkContext的runJob方法.2.SparkContext调用DAGScheduler的runJob函 ...

  6. shell 脚本实战笔记(10)--spark集群脚本片段念念碎

    前言: 通过对spark集群脚本的研读, 对一些重要的shell脚本技巧, 做下笔记. *). 取当前脚本的目录 sbin=`dirname "$0"` sbin=`cd &quo ...

  7. git自动提交脚本

    每次在linux都要重新一遍一遍敲着这些重复的代码,我想着能够优化一下,做个一键脚本,减少重复劳动. #!/bin/bash git status read -r -p "是否继续提交? [ ...

  8. Spark作业提交至Yarn上执行的 一个异常

    (1)控制台Yarn(Cluster模式)打印的异常日志: client token: N/A         diagnostics: Application application_1584359 ...

  9. Spark学习之路 (十六)SparkCore的源码解读(二)spark-submit提交脚本

    一.概述 上一篇主要是介绍了spark启动的一些脚本,这篇主要分析一下Spark源码中提交任务脚本的处理逻辑,从spark-submit一步步深入进去看看任务提交的整体流程,首先看一下整体的流程概要图 ...

随机推荐

  1. 进程防结束之PS_CROSS_THREAD_FLAGS_SYSTEM

    有人投到黑防去了,不过黑防不厚道,竟然没给完整的代码,自己整理一份备用吧,驱网.DebugMan.邪八的那群人直接飘过吧. 这种方法的关键在于给线程的ETHREAD.CrossThreadFlags设 ...

  2. poj_1390 动态规划

    题目大意 将一些连续的序列根据颜色分为N段,每段有颜色 为 Ci, 长度为 Li.每次点击其中的一段 i ,则可以将该段i消除,该段相邻的两段自动连接到一起,如果连接到一起的两段之前的颜色相同,则更新 ...

  3. c++字符指针

    对于C/C++中的 字符指针和字符数组,总是在碰到的时候无法确定而不得不现场测试,来确定末尾是否包含'\0',函数到底如何使用等等.真是劳民伤财,现在总结一下: 字符指针的赋值 (1)指向一个字符串常 ...

  4. Ubuntu 12.04 部署 PostGIS 2.1

    首先,卸载掉原有的postgis和postgresql-9.1-postgis,不然你就用1.5版好了~ 1 sudo dpkg --purge postgis postgresql-9.1-post ...

  5. sencha touch 入门系列 (三)sencha touch 项目创建

    通过上一章节的学习,我们的开发环境已经配置好了,接下来我们开始创建第一个sencha touch的项目,网络上很多sencha touch的教程都是手动搭建项目的, 不过手动搭建的项目缺少一些senc ...

  6. mysql 效率 inner join 与 where in

    -- report 123.77k行 report_loss 620 行 -- inner join ;report_loss 索引 all report 索引 eq_ref ; -- total 0 ...

  7. DG快照备库

    1.使用快照先决条件:主备库开启闪回功能 2.把备库转为快照库 DGMGRL> convert database satest to SNAPSHOT STANDBY; Converting d ...

  8. Lucene.net之解决锁的问题

    public sealed class SearchIndexManager { private static readonly SearchIndexManager searchManager=ne ...

  9. JS/Java/Python格式化金额

    //java代码 public static void main(String[] args) {     DecimalFormat myformat = new DecimalFormat(); ...

  10. SQL---->mySQl卸载for mac

    因为装的时候弄坏了 先来学习下怎么卸载吧,如下输入终端就好了 cd ~/ sudo rm /usr/local/mysql sudo rm -rf /usr/local/mysql* sudo rm ...