使用shell监控,重启flink,sparkstreaming任务

在flink,sparkstreaming等实时任务难免在运行过程中各种各样的原因挂掉的情况,下面的代码在yarn平台使用shell来监控任务,如果挂掉就发送告警,并尝试重启任务

#/bin/bash

#==================================================
#purpose: flink&spark任务运行监控,每一分钟检查一次本地进程和yarn任务进程
#author:
#date:2019/10/12
#==================================================

#param1 $1:grep jar 进程:flink-ops-data-warn-1.0-SNAPSHOT-jar-with-dependencies.jar
#param2 $2:grep yarn 任务进程flink-api-err-cnt
#param3 $3:重启的shell脚本 flink-api-error.sh
funCheck(){
  processdt=`date "+%Y-%m-%d %H:%M:%S"`
  #查找是否有任务jar包的进程
  count=`ps -ef | grep $1 | grep -v grep|wc -l`
  if [ ${count} == 1 ]; then
    true
    echo "$processdt $2 is running"
  elif [ ${count} == 0 ]; then
    msg="$2挂了,正在尝试重启..."
    echo "$processdt $msg"
    #发送告警信息到企业微信
    sh /opt/ops/bin/wechat-warn.sh "$processdt $msg"
    #如果进程挂了,但yarn任务里还挂着,就kill掉这个yarn任务
    yarnappid=`yarn application -list|grep $2|awk '{print $1}'`
    yarn application -kill $yarnappid
    #调用任务重启脚本
    nohup sh /opt/ops/bin/$3 &
    #重启需要时间,暂停两分钟
    sleep 2m
    processdt=`date "+%Y-%m-%d %H:%M:%S"`
    #检查是否重启成功
    count=`ps -ef | grep $1 | grep -v grep|wc -l`
    if [ ${count} == 1 ]; then
       echo "$processdt $2 已经重启 "
       sh /opt/ops/bin/wechat-warn.sh "$processdt $2 已经重启"
    else
       msg="$2 重启失败,..."
       echo "$processdt $msg"
       sh /opt/ops/bin/wechat-warn.sh "$processdt $msg"
    fi
  else
    #如果有多个yarn进程在运行,删掉其中一个,理论上不会有多余2个的
    msg="$2有多个yarn进程在运行,删掉其中一个"
    echo "$processdt $msg"
    sh /opt/ops/bin/wechat-warn.sh "$processdt $msg"
    yarnappid=`yarn application -list|grep $2| head -n 1|awk '{print $1}'`
    yarn application -kill $yarnappid
  fi
}

while true;
do
  funCheck flink-ops-data-warn-1.0-SNAPSHOT-jar-with-dependencies.jar flink-api-err-cnt flink-api-error-start.sh
  #添加监控任务

  #每一分钟检查一次
  sleep 1m
done

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值