怎么自己做导购网站网站建设scyiyou
怎么自己做导购网站,网站建设scyiyou,设计模板ppt在哪里,广告竞价推广Flink任务一般为实时不断运行的任务#xff0c;如果没有任务监控, 任务异常时无法第一时间处理会比较麻烦。 这里通过调用API接口方式来获取参数#xff0c;实现任务监控。 Flink任务监控#xff08;基于API接口编写shell脚本#xff09; 一 flink-on-yarn 模式 二 编写she… Flink任务一般为实时不断运行的任务如果没有任务监控, 任务异常时无法第一时间处理会比较麻烦。 这里通过调用API接口方式来获取参数实现任务监控。 Flink任务监控基于API接口编写shell脚本 一 flink-on-yarn 模式 二 编写shell 脚本
获取所有application curl -s http://XXX:8088/ws/v1/cluster/apps 获取 state值为 RUNNING 的application任务 curl -s http://XXX:8088/ws/v1/cluster/apps?stateRUNNING 获取这个任务单个信息 curl -s http://XXX:8088/ws/v1/cluster/apps/application_1619074605427_0063 |jq .app.state jq是linux一个很方便的json处理工具
通俗的说就是一个能够接受json处理json输出json的程序反正很好用。
安装起来也非常的方便直接使用yum即可安装。linux下离线安装jq工具 - 代码天地 (codetd.com) yum install jq 编写shell脚本 由于公司离线yarn和实时yarn 采用是分开的方式。 只需要监控实时yarn 任务有没有处于RUNNING达到监控的目的 这里shell脚本也只记录flink-on-yarn 这种部署方式任务监控 shell脚本水平有限大家多多谅解欢迎指导 shell脚本实现功能 获取线运行job任务记录到日志文件。下一次脚本调用时候读取日志文件判断状态。 不是RUNNING就告警同时重新记录日志。 #!/bin/bashJoblistcat /opt/shell/logs/flink_job.log #获取记录job的log文件
let i0 #获取任务数
let log_count0 #获取日志中的任务数
start_countRUNNING #判断任务是否存在异常############## 1 判断日志文件内容是否为空为空时自动读取flink任务并记录到日志文件 #########
if [ -z $Joblist ]
thenwhile :dojob_id[$i]curl -s http://XXX:8088/ws/v1/cluster/apps?stateRUNNING |jq .apps.app[$i].idif [ ${job_id[$i]} null ];thenbreakelseecho ${job_id[$i]}echo ${job_id[$i]}/opt/shell/logs/flink_job.loglet ifidone
fi############## 2 读取文件中JOB任务 ##################let i0
while read line
doJOB[$i]$linelet i
done/opt/shell/logs/flink_job.loglog_count$i #获取日志中的任务数########### 3 判断任务状态是否为RUNNIG不是则邮件告警 ###############
for ((j0;ji;j))
doJOB_ID${JOB[$j]//\}JOB_statuscurl -s http://XXXX:8088/ws/v1/cluster/apps/$JOB_ID | jq .app.stateJOB_NAMEcurl -s http://XXX:8088/ws/v1/cluster/apps/$JOB_ID | jq .app.nameSTART$[curl -s http://XXX:8088/ws/v1/cluster/apps/$JOB_ID | jq .app.startedTime / 1000]# echo JOB_NAME: $JOB_NAME
# echo 启动时间: date -d $START %F %H:%M:%S
# echo JOB_status: ${JOB_status//\}#echo -e 【$JOB_NAME】 \n JOB_ID: $JOB_ID \n 启动时间: date -d $START %F %H:%M:%S \n 检查时间: date %Y-%m-%d %H:%M:%S \n 目前状态: $JOB_status
#echo if [ ${JOB_status//\} ! RUNNING ];thenSUBJECT【异常告警】Flink任务异常TEXTFlink任务 【$JOB_NAME】 异常故障 \n\nJOB_ID: $JOB_ID\n\n启动时间: date -d $START %F %H:%M:%S \n\n检查时间: date %Y-%m-%d %H:%M:%S \n\n目前状态: $JOB_statusecho -e $TEXT | mail -s $SUBJECT 邮箱地址start_counterronfi
done########### 4 出现任务异常重新读取job 任务记录到日志文件 ###############let i0
if [ $start_count erron ];thenecho 重新写入日志文件while :dojob_id[$i]curl -s http://XXXX:8088/ws/v1/cluster/apps?stateRUNNING |jq .apps.app[$i].idif [ ${job_id[$i]} null ];thenbreakelif [ $i 0 ]; thenecho ${job_id[$i]}/opt/shell/logs/flink_job.logelseecho ${job_id[$i]}/opt/shell/logs/flink_job.logfilet idonestart_countRUNNING
fi########### 5 判断线上任务数是否一致,是否有新任务增加 ###############let i0
while :
dojob_id[$i]curl -s http://XXX:8088/ws/v1/cluster/apps?stateRUNNING |jq .apps.app[$i].idif [ ${job_id[$i]} null ];thenbreakelselet ifi
done
let count$i #线上任务数
echo 线上最新RUNNING状态任务数: $count
echo 日志RUNNING状态任务数: $log_countif [ ! $count -eq $log_count ]; thenecho 现有RUNNING状态任务数不相等于已记录的任务数echo ${job_id[0]} /opt/shell/logs/flink_job.logfor ((i1;icount;i))doecho 重新写入JOB: ${job_id[$i]}echo ${job_id[$i]} /opt/shell/logs/flink_job.logdonefiecho 当前时间: date %Y-%m-%d %H:%M:%S
echo
echo 本次crontab监控结束
echo
Yarn REST API 使用指南-阿里云开发者社区
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87032.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!