前阶段应公司要求在收缩公司资源成本,导致有些机器性能比较饱和有几台spark的job节点挂掉了。这若是没告警。对公司的损失可是不少。后面为了提前预防类似的事情发送,自己写了很简单的shell脚本来定时巡检。底下是代码,仅供参考!
#!/bin/bash
file_log=/data/lzmhtest/crontab/spark/spark.log ----存放定时打印的日志
master=`ps -ef | grep org.apache.spark.deploy.SparkSubmit | grep 7077 | awk '{print $2}'`----过滤spark-job节点的进程号
if [ "$master" = "" ]; then---判断进程号为空
echo "Spark正在重启中..." [$(date +'%F %H:%M:%S')] >> $file_log---打印日志
cd /data/modules/spark-2.1.1-bin-hadoop2.7----cd到spark目录启动脚本
sh spark_start.sh ---根据实际情况写自己的spark启动命令脚本
else
echo "Spark正常运行" [$(date +'%F %H:%M:%S')] "MasterPid:" $master >> $file_log---打印日志
fi
底下是cronta定时脚本;我写的是每1分钟巡检一次
*/1 * * * * lzmhqa /bin/sh /data/lzmhtest/crontab/spark/spark.sh