当前位置: 首页 > news >正文

河北省疫情最新情况网站手机优化

河北省疫情最新情况,网站手机优化,网站建设最难的是什么,23个超好玩的网页小游戏目录 一.引言 二.Flink 程序监控 1.shell 脚本 2.crontab 配置 三.Python 程序监控 1.shell 脚本 2.crontab 配置 四.总结 一.引言 业务有流式处理数据的需求,需要 7x24 通过 Flink Python 程序进行处理。为了监控 Flink 与 Python 的程序运行状态并在程…

目录

一.引言

二.Flink 程序监控

1.shell 脚本

2.crontab 配置

三.Python 程序监控

1.shell 脚本

2.crontab 配置 

四.总结


一.引言

业务有流式处理数据的需求,需要 7x24 通过 Flink + Python 程序进行处理。为了监控 Flink 与 Python 的程序运行状态并在程序异常时重启对应程序,开发了对应的流式程序监控脚本。特此记录,供以后类似任务快捷使用。

二.Flink 程序监控

1.shell 脚本

在 linux 机器 vim cron_protect.sh 填入下述信息:

#!/bin/bashdat=`date +%Y%m%d`
# 任务在 linux 机器的对应目录
base_path='your_path'
cd $base_path
time=`date "+%Y%m%d-%H%M"`function check() {
# Flinl、Spark Streaming 程序的 appName
appname=$1
appnum=`yarn --config /data0/yarn-streaming application -list | grep $appname| awk '{print $1}'|wc -l`
if [ "$appnum" -eq "1" ];thenecho "$appname $time ok"
elif [ "$appnum" -eq "0" ];thensh killAndRerun.shsendMail
elseecho "任务存在多个实例"appId=`yarn --config /data0/yarn-streaming application -list | grep $appname| awk '{print $1}'`arr=(${appId// / })for i in ${arr[@]}doyarn --config /data0/yarn-streaming application -kill $iecho 'kill' $idonesh killAndRerun.shsendMail
fi
}check yourAppName

 yarn-streaming 获取当前 AppName 存在的实例数

 app_num 判断当前 app_num 分别为 0、1、其他

        - 0 代表任务异常,调用启动程序重启服务

        - 1 代表任务正常,do nothing

        - 其他 存在多个实例,kill 掉全部异常任务,重启对应服务

send_mail  调用告警系统发报警提示任务异常重启

Tips:

不同环境下,yarn-streaming 的命令可能存在差异,上面 yarn-streaming 相关操作请根据自己服务器环境的命令进行修改。如果是 Flink 流程序,也可以在内部调用 env.setRestartStrategy 方法定义对应的重启策略。

2.crontab 配置

0-59/5 * * * * source ~/.bash_profile && cd $base_path && sh cron_protect.sh >> cron.log

这里任务是 7x24 执行,博主设置了 0-59/5 即 5 min 检查一次,也可以根据自己的需求调整 crontab 的频率。运行后,会每 5 min 打印程序运行状态:

三.Python 程序监控

1.shell 脚本

#!/bin/bashcd $base_path# 脚本名称
PYTHON_PROGRAM_NAME='your.py'
# 任务 pid
PYTHON_PID=$(pgrep -f $PYTHON_PROGRAM_NAME)# 检查pid是否存在
if [ -z "$PYTHON_PID" ]; then# pid不存在,python程序未运行,需要重启echo "Python程序未运行,正在重启..."nohup python -u $PYTHON_PROGRAM_NAME >> ./log/log_`date +\%Y\%m\%d`.log 2>&1 &
else# pid存在,python程序正常运行echo "Python程序正在运行,pid: $PYTHON_PID"
fi

 PYTHON_PROGRAM_NAME 要执行的 python 文件

 PYTHON_PID 获取对应 python 程序的 pid

 python -u pid 存在不执行,pid 不存在执行 python -u 启动对应任务

Tips:

在Python命令行中,"-u" 选项是指以无缓冲的方式来执行Python脚本。通常情况下,Python 会将输出缓冲,这意味着它会等到有一定数量的数据要输出时才进行输出。这可能会导致输出延迟或者无法实时看到输出结果。当使用 "-u" 选项时,Python 将立即输出结果,而不会缓冲。这在需要实时监控输出结果的情况下非常有用。改参数主要用于解决下述写法不输出日志的问题:

nohup python xxx.py > log 2>&1 & 

2.crontab 配置 

*/2 * * * * source ~/.bash_profile && cd $base_path && sh cron_protect.sh >> ./log/cron_`date +\%Y\%m\%d`.log 2>&1 &

因为 Flink、Streaming 程序部署在大集群,运行相对稳定所以每 5 min 检查一次,而 python 部署在 linux 机器,容易受机器上其他任务影响,所以 2 min 检查一次。运行后,cron.log 会定时监控 python 程序对应的 pid 是否正常:

四.总结

python 7x24 采用了 While True 的写法,Flink 则是消费了一个 7x24 的 Topic 实现常驻。除此之外,大数据还经常需要监控 Spark 任务的状态,把 yarn-streaming 切换成 yarn 即可。

http://www.yidumall.com/news/52059.html

相关文章:

  • 自己做的网站 360不兼容资阳地seo
  • 鞍山网站制作云端网站产品推广
  • 云服务器便宜清远seo
  • 做网站最简单的百度关键词模拟点击软件
  • 网站模板服务商seo自学教程
  • 苏州网站设计网站中山网站seo
  • 北京做家政网站有哪些平台企业查询系统
  • 湛江市律师网站建设品牌广告推广怎么做最有效
  • ps怎么做网站模板淘宝关键词优化技巧
  • 网站建设和编程的区别关键词在线挖掘网站
  • 个人网站做导购可以吗公司网站如何制作设计
  • 网站应该怎么做运维免费域名注册官网
  • 毕业设计代做网站代码2345网址大全浏览器
  • 武汉公司做网站精品成品网站1688
  • 建门户网站今日头条热搜
  • 假冒网站能通过备案登记吗网页制作图片
  • 做视频网站用什么语言windows优化大师是什么软件
  • 学网站建设去什么学校福州短视频seo网红
  • 兰州网站设计哪个平台好seo综合诊断工具
  • 网站返回首页怎么做的好看中文域名注册管理中心
  • 中山网站建设文化流程金阊seo网站优化软件
  • 网站保护等级是企业必须做的么如何做网络推广运营
  • 免费网站模板无需注册如何自己建设网站
  • 哪些网站做的不好快速提升网站排名
  • 宁夏建设工程质量安全监督网站企业网站制作价格
  • 仿一个网站要多少钱网站优化公司认准乐云seo
  • 微信服务号绑定网站吗网站推广优化c重庆
  • 太原建南站seo公司多少钱
  • 免费网站制作网站源码福州百度推广开户
  • 虚拟主机能建设网站吗地推推广方案