#!/bin/bash

source ../dmp_env.sh

today=${ScheduleTime}

date_time=$(date +"%Y-%m-%d.%H" -d "-1 hour $today")

date_path=$(date +%Y/%m/%d/%H -d "-1 hour $today")

part_num=$(hadoop fs -ls s3://mob-emr-test/dataplatform/rtdmp_pre/${date_path}/ | wc -l)
if [[ ${part_num} -le 50 ]]; then
  echo "This Dir No Data !!!"
  partition=10
  coalesce=10
  executor=2
  memory=4
  core=2
  flag=0
else
  partition=2000
  coalesce=200
  executor=20
  memory=18
  core=5
  flag=1
fi
INPUT="s3://mob-emr-test/dataplatform/rtdmp_pre/${date_path}"

OUTPUT="s3://mob-emr-test/dataplatform/rtdmp_deal/${date_path}"

before_date_path=$(date +%Y/%m/%d/%H -d "-2 hour $today")

BEFORE_OUTPUT="s3://mob-emr-test/dataplatform/rtdmp/${before_date_path}"

check_await "${BEFORE_OUTPUT}/_SUCCESS"

spark-submit --class mobvista.dmp.datasource.rtdmp.RTDmpMainSpe \
  --name "RTDmpMainSpe.${date_time}" \
  --conf spark.sql.shuffle.partitions=${partition} \
  --conf spark.default.parallelism=${partition} \
  --conf spark.kryoserializer.buffer.max=512m \
  --conf spark.kryoserializer.buffer=64m \
  --master yarn --deploy-mode cluster \
  --executor-memory ${memory}g --driver-memory 8g --executor-cores ${core} --num-executors ${executor} \
  .././DMP.jar \
  -flag ${flag} -time ${date_time} -input ${INPUT} -output ${OUTPUT} -coalesce ${coalesce}

if [[ $? -ne 0 ]]; then
  exit 255
fi