|
@@ -0,0 +1,86 @@
|
|
|
+#!/bin/sh
|
|
|
+set -x
|
|
|
+
|
|
|
+source /root/anaconda3/bin/activate py37
|
|
|
+
|
|
|
+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
|
|
|
+
|
|
|
+# nohup sh handle_rov.sh > "$(date +%Y%m%d_%H%M%S)_handle_rov.log" 2>&1 &
|
|
|
+
|
|
|
+# 原始数据table name
|
|
|
+table='alg_recsys_sample_all'
|
|
|
+today="$(date +%Y%m%d)"
|
|
|
+today_early_3="$(date -d '3 days ago' +%Y%m%d)"
|
|
|
+#table='alg_recsys_sample_all_test'
|
|
|
+# 处理分区配置 推荐数据间隔一天生产,所以5日0点使用3日0-23点数据生产new模型数据
|
|
|
+begin_early_2_Str="$(date -d '2 days ago' +%Y%m%d)"
|
|
|
+end_early_2_Str="$(date -d '2 days ago' +%Y%m%d)"
|
|
|
+beginHhStr=00
|
|
|
+endHhStr=23
|
|
|
+max_hour=05
|
|
|
+max_minute=00
|
|
|
+# 各节点产出hdfs文件绝对路径
|
|
|
+# 源数据文件
|
|
|
+originDataPath=/dw/recommend/model/41_recsys_sample_data/
|
|
|
+# 特征值
|
|
|
+valueDataPath=/dw/recommend/model/14_feature_data/
|
|
|
+# 特征分桶
|
|
|
+bucketDataPath=/dw/recommend/model/43_recsys_train_data/
|
|
|
+# 模型数据路径
|
|
|
+MODEL_PATH=/root/joe/recommend-emr-dataprocess/model
|
|
|
+# 预测路径
|
|
|
+PREDICT_PATH=/root/joe/recommend-emr-dataprocess/predict
|
|
|
+# 历史线上正在使用的模型数据路径
|
|
|
+LAST_MODEL_HOME=/root/joe/model_online
|
|
|
+# 模型数据文件前缀
|
|
|
+model_name=model_nba8
|
|
|
+# fm模型
|
|
|
+FM_HOME=/root/sunmingze/alphaFM/bin
|
|
|
+# hadoop
|
|
|
+HADOOP=/opt/apps/HADOOP-COMMON/hadoop-common-current/bin/hadoop
|
|
|
+OSS_PATH=oss://art-recommend.oss-cn-hangzhou.aliyuncs.com/zhangbo/
|
|
|
+
|
|
|
+
|
|
|
+cat /root/joe/recommend-emr-dataprocess/predict/model_nba8_0709_0713_new.txt |
|
|
|
+ awk -F " " '{
|
|
|
+ if (NR == 1) {
|
|
|
+ print $1"\t"$2
|
|
|
+ } else {
|
|
|
+ split($0, fields, " ");
|
|
|
+ OFS="\t";
|
|
|
+ line=""
|
|
|
+ for (i = 1; i <= 10 && i <= length(fields); i++) {
|
|
|
+ line = (line ? line "\t" : "") fields[i];
|
|
|
+ }
|
|
|
+ print line
|
|
|
+ }
|
|
|
+ }' > /root/joe/recommend-emr-dataprocess/predict/model_nba8_0709_0713_new_change.txt
|
|
|
+if [ $? -ne 0 ]; then
|
|
|
+ echo "新模型文件格式转换失败"
|
|
|
+fi
|
|
|
+# 4.1.2 模型文件上传OSS
|
|
|
+online_model_path=${OSS_PATH}/${model_name}.txt
|
|
|
+$HADOOP fs -test -e ${online_model_path}
|
|
|
+if [ $? -eq 0 ]; then
|
|
|
+ echo "数据存在, 先删除。"
|
|
|
+ $HADOOP fs -rm -r -skipTrash ${online_model_path}
|
|
|
+else
|
|
|
+ echo "数据不存在"
|
|
|
+fi
|
|
|
+$HADOOP fs -put /root/joe/recommend-emr-dataprocess/predict/model_nba8_0709_0713_new_change.txt ${online_model_path}
|
|
|
+if [ $? -eq 0 ]; then
|
|
|
+ echo "推荐模型文件至OSS成功"
|
|
|
+ # 4.1.3 本地保存最新的线上使用的模型,用于下一次的AUC验证
|
|
|
+ cp -f ${LAST_MODEL_HOME}/model_online.txt ${LAST_MODEL_HOME}/model_online_$(date +\%Y\%m\%d).txt
|
|
|
+ cp -f /root/joe/recommend-emr-dataprocess/predict/model_nba8_0709_0713_new.txt ${LAST_MODEL_HOME}/model_online.txt
|
|
|
+ if [ $? -ne 0 ]; then
|
|
|
+ echo "模型备份失败"
|
|
|
+ fi
|
|
|
+ /root/anaconda3/bin/python monitor_util.py --level info --msg "荐模型数据更新 \n【任务名称】:step模型更新\n【是否成功】:success\n【信息】:已更新/root/joe/recommend-emr-dataprocess/predict/model_nba8_0709_0713_new_change.txt模型}"
|
|
|
+else
|
|
|
+ echo "推荐模型文件至OSS失败"
|
|
|
+ /root/anaconda3/bin/python monitor_util.py --level error --msg "荐模型数据更新 \n【任务名称】:step模型推送oss\n【是否成功】:error\n【信息】:推荐模型文件至OSS失败/root/joe/recommend-emr-dataprocess/predict/model_nba8_0709_0713_new_change.txt --- ${online_model_path}"
|
|
|
+fi
|