shell 指定月份,批量执行每日的spark作业插入到分区

5 篇文章 0 订阅
4 篇文章 0 订阅
#!/bin/bash

# 获取指定月份的年份和月份
year=${1:0:4}
month=${1:4:2}

# 检查年份和月份是否合法
if [[ $year -eq 0 || $month -eq 0 || $month -gt 12 ]]; then
  echo "输入的月份不合法"
  exit 1
fi

# 获取指定月份的天数
days=$(cal $month $year | awk 'NF {DAYS = $NF}; END {print DAYS}')
base_dir=/appdata/jiayeli/riverMaps_btch""

function executorMonthDate() {
  tbName=$1
  for ((day=1; day<=days; day++)); do
    #printf "%04d%02d%02d\n" $year $month $day
    partitionDate=`printf "%04d%02d%02d\n" $year $month $day`
    printf "== ------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
    printf "$(date +'%Y-%m-%d %H:%M:%S:%3N'): start job ."
    printf "calculation date by date: $partitionDate\n"
    printf "sh ${base_dir}/bin/run.sh ${tbName} dynamic ${partitionDate} spark.maxExecutors=15 spark.executor.memory=40GB\n"
    sh ${base_dir}/bin/run.sh ${tbName} dynamic ${partitionDate} spark.maxExecutors=15 spark.executor.memory=40G
    printf "$(date +'%Y-%m-%d %H:%M:%S:%3N'): job end ."
    printf "== ------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
  done
}

hmaOneId="dwd_hma_one_id_df"
hmaVisitOneId="dwd_hma_visit_one_id_df"
hwaOneId="dwd_hwa_one_id_df"
hwaVisitOneId="dwd_hwa_visit_one_id_df"
hmaSessionIdOneId=""
executorMonthDate ${hmaOneId} > ../logs/${hmaOneId}.log 2>&1 &
executorMonthDate ${hmaVisitOneId} > ../logs/${hmaVisitOneId}.log 2>&1 &
executorMonthDate ${hwaOneId} > ../logs/${hwaOneId}.log 2>&1 &
executorMonthDate ${hwaVisitOneId} > ../logs/${hwaVisitOneId}.log 2>&1 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值