Flink监控脚本-创新互联

Flink监控脚本 提前准备好Flink任务的启动脚本
vim start01.sh

#!/bin/bash
path=$(hadoop fs -ls -t /flink/checkpoints/* | grep "chk-[0-9]"|sort -r -k 6,7|awk '{print $8}' |head -n 1)
if [ ! $path ]; then
 nohup /home/hadoop/flink-1.13.5/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.talkingdata.feilong.app.impl.ETLApplication etl.jar /home/hadoop/nfs/config/feilong/flink-etl/etl-config.properties >ae6log.out 2>&1 &
else
 nohup  /home/hadoop/flink-1.13.5/bin/flink run --allowNonRestoredState -s hdfs://172.23.4.223:8020$path -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.talkingdata.feilong.app.impl.ETLApplication etl.jar /home/hadoop/nfs/config/feilong/flink-etl/etl-config.properties >ae6log.out 2>&1 &
fi
监控脚本
#! /bin/bash
source ~/.bash_profile
##flink 启动脚本里的名称,多余名称的一定要注释掉
feilong_name="feilong_flink-streaming-etl"
ae6_name="ae6_flink-streaming-etl"
ae3_name="ae3_flink-streaming-etl"


flink_name="${feilong_name} ${ae6_name} ${ae3_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.13.5/etl/start01.sh >/home/hadoop/flink-1.13.5/etl/feilong_restart_log.out 2>&1
elif [[ ${file} == "${ae6_name}" ]];then
  echo "重启AE6的flink任务"
nohup sh /home/hadoop/flink-1.13.5/etl/start02.sh >/home/hadoop/flink-1.13.5/etl/ae6_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

成都创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为安次企业提供专业的成都网站制作、成都做网站,安次网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

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

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章标题:Flink监控脚本-创新互联
本文来源:http://pwwzsj.com/article/ceceoe.html