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 &

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

转载于:https://www.cnblogs.com/chwilliam85/p/9518809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值