zoukankan      html  css  js  c++  java
  • 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 &

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

  • 相关阅读:
    如何创建多线程
    Oracle导入数据表
    Oracle如何创建数据库用户
    Oracle忘记密码,如何修改密码
    Oracle如何创建表空间
    leetcode 787. K 站中转内最便宜的航班 js题解
    JS实现平衡二叉树
    typescript的安装与配置
    二分查找JS实现
    JS作用域(一):一般变量声明
  • 原文地址:https://www.cnblogs.com/chwilliam85/p/9518809.html
Copyright © 2011-2022 走看看