|
@@ -16,19 +16,24 @@ FM_HOME=/root/sunmingze/alphaFM
|
|
|
OSS_PATH=oss://art-recommend.oss-cn-hangzhou.aliyuncs.com/zhangbo/
|
|
|
max_hour=17
|
|
|
max_minute=00
|
|
|
-OSS_ONLINE_MODEL_PATH=${OSS_PATH}/${model_name}.txt
|
|
|
|
|
|
export SPARK_HOME=/opt/apps/SPARK2/spark-2.4.8-hadoop3.2-1.0.8
|
|
|
export PATH=$SPARK_HOME/bin:$PATH
|
|
|
export HADOOP_CONF_DIR=/etc/taihao-apps/hadoop-conf
|
|
|
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
|
|
|
|
|
|
+start_time=$(date "+%Y-%m-%d %H:%M:%S")
|
|
|
+elapsed=0
|
|
|
+LOG_PREFIX=广告模型自动更新任务
|
|
|
+
|
|
|
+
|
|
|
# 1 判断依赖的数据表是否生产完成
|
|
|
source /root/anaconda3/bin/activate py37
|
|
|
while true; do
|
|
|
python_return_code=$(python ad/ad_utils.py --excute_program check_ad_origin_hive --partition ${today} --hh 10)
|
|
|
- if [ $python_return_code -eq 0 ]; then
|
|
|
- echo "Python程序返回0,退出循环。"
|
|
|
+ elapsed=$(($(date +%s -d "${start_time}") - $(date +%s -d "+%Y-%m-%d %H:%M:%S")))
|
|
|
+
|
|
|
+ if [ "$python_return_code" -eq 0 ]; then
|
|
|
break
|
|
|
fi
|
|
|
echo "Python程序返回非0值,等待五分钟后再次调用。"
|
|
@@ -36,12 +41,13 @@ while true; do
|
|
|
current_hour=$(date +%H)
|
|
|
current_minute=$(date +%M)
|
|
|
if (( current_hour > max_hour || (current_hour == max_hour && current_minute >= max_minute) )); then
|
|
|
- echo "最长等待时间已到,失败:${current_hour}-${current_minute}"
|
|
|
- msg="广告特征数据校验失败,大数据分区没有数据: ${today}10"
|
|
|
- /root/anaconda3/bin/python ad/ad_monitor_util.py ${msg}
|
|
|
+ msg="大数据数据生产校验失败 \n\t分区: ${today}10"
|
|
|
+ echo -e "$LOG_PREFIX -- 大数据数据生产校验 -- ${msg}"
|
|
|
+ /root/anaconda3/bin/python ad/ad_monitor_util.py --level error --msg "$msg" --start "$start_time" --elapsed "$elapsed"
|
|
|
exit 1
|
|
|
fi
|
|
|
done
|
|
|
+echo "$LOG_PREFIX -- 大数据数据生产校验 -- 大数据数据生产校验通过: 耗时 $elapsed"
|
|
|
|
|
|
|
|
|
# 2 原始特征生成
|
|
@@ -54,13 +60,15 @@ beginStr:${today_early_1}00 endStr:${today}10 \
|
|
|
savePath:${originDataSavePath} \
|
|
|
table:alg_recsys_ad_sample_all filterHours:00,01,02,03,04,05,06,07 \
|
|
|
idDefaultValue:0.01
|
|
|
+
|
|
|
+elapsed=$(($(date +%s -d "${start_time}") - $(date +%s -d "+%Y-%m-%d %H:%M:%S")))
|
|
|
if [ $? -ne 0 ]; then
|
|
|
- echo "Spark原始样本生产任务执行失败"
|
|
|
- msg="广告特征数据生成失败,Spark原始样本生产任务执行失败"
|
|
|
- /root/anaconda3/bin/python ad/ad_monitor_util.py ${msg}
|
|
|
+ msg="Spark原始样本生产任务执行失败"
|
|
|
+ echo "$LOG_PREFIX -- 原始样本生产 -- $msg: 耗时 $elapsed"
|
|
|
+ /root/anaconda3/bin/python ad/ad_monitor_util.py --level error --msg "$msg" --start "$start_time" --elapsed "$elapsed"
|
|
|
exit 1
|
|
|
else
|
|
|
- echo "spark原始样本生产执行成功"
|
|
|
+ echo "$LOG_PREFIX -- 原始样本生产 -- Spark原始样本生产任务执行成功: 耗时 $elapsed"
|
|
|
fi
|
|
|
|
|
|
|
|
@@ -73,13 +81,15 @@ beginStr:${today_early_1} endStr:${today} repartition:100 \
|
|
|
filterNames:adid_,targeting_conversion_ \
|
|
|
readPath:${originDataSavePath} \
|
|
|
savePath:${bucketFeatureSavePath}
|
|
|
+
|
|
|
+elapsed=$(($(date +%s -d "${start_time}") - $(date +%s -d "+%Y-%m-%d %H:%M:%S")))
|
|
|
if [ $? -ne 0 ]; then
|
|
|
- echo "Spark特征分桶处理任务执行失败"
|
|
|
- msg="广告特征分桶失败,Spark特征分桶处理任务执行失败"
|
|
|
+ msg="Spark特征分桶处理任务执行失败"
|
|
|
+ echo "$LOG_PREFIX -- 特征分桶处理任务 -- $msg: 耗时 $elapsed"
|
|
|
/root/anaconda3/bin/python ad/ad_monitor_util.py ${msg}
|
|
|
exit 1
|
|
|
else
|
|
|
- echo "spark特征分桶处理执行成功"
|
|
|
+ echo "$LOG_PREFIX -- 特征分桶处理任务 -- spark特征分桶处理执行成功: 耗时 $elapsed"
|
|
|
fi
|
|
|
|
|
|
|