Flink监控脚本

Flink监控脚本

提前准备好Flink任务的启动脚本

vim start01.sh

#!/bin/bash
path=$(hadoop fs -ls -t -r /flink/etl-checkpoints/* | sort -nr | grep 'chk' | head -n 1 | awk '{print $NF}')
if [ ! $path ]; then
 nohup /home/hadoop/flink-1.14.0/bin/flink run -m yarn-cluster -ys 1 -ynm etl-AE6ss -yjm 4096 -ytm 4096 -yD env.java.opts="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" -d -c com.aaa.bbb.app.impl.cccetl.jar /home/config.properties > log.out 2>&1 &
else
 nohup  /home/hadoop/flink-1.14.0/bin/flink run --allowNonRestoredState -s hdfs://172.23.5.234:8020$path -m yarn-cluster -ys 1 -ynm ss -yjm 4096 -ytm 4096 -yD env.java.opts="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" -d -c com.aaa.bbb.app.impl.cccetl.jar config.properties > log.out 2>&1 &
fi

监控脚本

#! /bin/bash
source ~/.bash_profile
##flink 启动脚本里的名称,多余名称的一定要注释掉
name="flink-streaming-etl"
name01="flink-streaming-etl"


flink_name="${name}" ##列表名称参照flink启动脚本里的名称,多个flink任务时,名称不能重复
#list=$(yarn application -list | awk 'NR >2{print $1,$2}')
#echo $list
flink_running_name=$(yarn application -list | awk 'NR >2{print $2}')
TIME=`date "+%Y-%m-%d %H:%M:%S"`

##执行相应的flink名称重启任务,#####判断名称要与flink_name的名称以及个数保持一致
restart_flink(){
if [[ ${file} == "${feilong_name}" ]];then
  echo "重启feilong的flink任务"
nohup sh /home/hadoop/flink-1.14.5/etl/start01.sh > /home/hadoop/flink-1.14.5/etl/restart_log.out 2>&1
elif [[ ${file} == "${ae6_name}" ]];then
  echo "重启AE6的flink任务"
nohup sh /home/hadoop/flink-1.14.5/etl/start02.sh > /home/hadoop/flink-1.14.5/etl/restart_log.out 2>&1
else
  echo "${file} 不在列表内请调整脚本,增加判断"
fi
}

##执行全部flink重启任务
restart_all_flink(){
for file in ${flink_name}
do
restart_flink
done
}


##执行部分flink重启任务
restart_part_flink(){
for file in ${flink_name}
do
##判断是否在任务列表内,未在列表内时进行重启
if [[ ${flink_running_name} =~ ${file} ]];then
echo "${file} 任务正常"
else
echo "${file}未在列表内,需要重启"
restart_flink
fi
done
}

if [[ ! -n "$flink_running_name" ]];then
   echo "[ -flink任务列表为空,执行全部重启flink命令 :$TIME]"
   restart_all_flink
else
   echo "[ -flink任务列表不为空,存在正在运行的flink任务 :$TIME]"
   restart_part_flink
fi

所有打不死你的,都会使你变得更强大!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值