• Spark 任务提交脚本


    说明

    该脚本是根据输入起始日期-结束日期,执行从数据库拉取日期间隔数据到HDFS。日期间隔中的日期就是每一年的自然日。

    日期格式可以是以下几种:
    2018-01-01 2018-12-31  [-][/][.]['']
    2018/01/01 2018/12/31    [-][/][.]['']
    20180101 20181231       [-][/][.]['']

    代码片段

    if [[ $# -le 2 || $# -gt 3 ]]; then
        echo "Usage: $0 2018-01-01 2018-12-31 or $0 2018/01/01 2018/12/31 or $0 20180101 20181231 [-][/][.]['']"
        exit 1
    fi
    
    START_DAY=$(date -d "$1" +%s)
    END_DAY=$(date -d "$2" +%s)
    SPLITER=${3}
    
    declare -a DATE_ARRAY
    
    function getDateRange 
    {
        if [[ $# -ne 3 ]]; then
            echo "Usage: getDateRange 2018-01-01 2018-12-31 or getDateRange 2018/01/01 2018/12/31 or getDateRange 20180101 20181231 [-][/][.]['']"
            exit 1
        fi
        
        START_DAY_TMP=${1}
        END_DAY_TMP=${2}
        SPLITER_TMP=${3}
        I_DATE_ARRAY_INDX=0
        
        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}+86400))
            ((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 4 --executor-memory 4G --class "com.cm.data.datasync.ReadLogDb2HDFS" /home/ubuntu/target/data_analysis-1.0.1.jar order_log_${SINGLE_DAY} 4` done exit 0

    下载地址:Shell

    最后奉送 nohub 方式命令 ./spark_submit_script.sh 20180101 20180823 '' > spark_task_2018.out 2>&1 &

    一样的颜色的地方可以使用 [-][/][.][''] 替换

  • 相关阅读:
    分享:两个栈实现一个队列的功能
    分享:要关注技术,但也要关注所做的事情
    linux网络编程中阻塞和非阻塞socket的区别
    分享:C++参数传递方式
    linux非阻塞socket教程
    有用和有趣的产品秤砣
    查找 grep r TFramedTransport *
    分享:SecureCRT使用VIM语法高亮
    linux 非阻塞 socket Google 搜索
    linux c语言 select函数用法 ITeye技术网站
  • 原文地址:https://www.cnblogs.com/chwilliam85/p/9518809.html
Copyright © 2020-2023  润新知