idmp计算任务shell脚本
程序员文章站
2022-03-05 10:09:05
...
idmp计算任务shell脚本
#!/bin/bash
############################################
#
# author: hunter.d
# date : 2020-02-01
# desc : idmp计算任务执行脚本
#
############################################
#判断脚本是否传入的指定的数据日期
#只要[]里面有东西if 判断的就是这个变量是否为空,只要这个变量不为空就是个turr
#gt是大于的意思
if [ $# -gt 1 ]
then
date_day=$1
old_idmp_day=$2
else
#
#--master yarn\ 在yarn上执行
#--deploy-mode cluster\ 调配模式为集群
#--num-executors 3 \ 有3台机器线程同时执行
#--executor-memory 1 \用1g去执行
#--executor-cores 1 \用1核去执行
#--class cn.doitedu.dw.idmp.LogDataIdmpV2 \你要运行的类的名字reference(全类名)
#下一个说明是jar包的路径
#第一个参数是app日志存在的路径
#第二个参数是web日志存在的路径
#第三个参数是wx日志存在的路径
#第四个参数是上一日的idmp映射字典的路径
#第五各参数是今天的输出路径
#
##
#获取当前时间前一天的日期,必须是大Y,然后+后面没有空格!!!!
#date +'%Y-%m-%d'
#你要把一个命令赋值给一个变量,要用到飘``,你想打印一下看一下这个变量的值是echo ${data_day}
#shell中引用变量用${}
#获取当前一天的日期作为数据处理的日期
date_day=`date -d '-1 day' +'%Y-%m-%d'`
#获取当前两天的日期作为idmpde的目录日期
old_idmp_day=`date -d '-2 day' +'%Y-%m-%d'`
fi
#配置spark_home的目录
export SPARK_HOME=/usr/apps/spark-2.3.3-bin-hadoop2.7/
${SPARK_HOME}bin/spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 3 \
--executor-memory 1g \
--executor-cores 1 \
--class cn.doitedu.dw.idmp.LogDataIdmpV2 \
/root/dw.jar /doit12/logdata/applog/${data_say} /doit12/logdata/weblog/${data_say} /doit12/logdata/wxlog/${data_say} /doit12/dicts/idmp/${old_idmp_day}/ /doit12/dicts/idmp/${data_say}/ yarm
#然后就是执行这个程序如果这个程序退出码是个0就说明正常执行,如果退出码是其他则不正常执行
#我们判断的标准就是echo $? (退出码)
if [ $? != 0 ]
then
echo '不好了,大人...出了点莫名奇妙的问题;;;;;;;'
else
echo 'idmapping 计算成功'
fi