念念不忘
必有回响

Shell脚本每5秒监控一次Namenode端口

最近hadoop集群的namenode节点频繁宕掉,看日志发现是内存溢出,现有的机器已经将内存加到极限,因为扩容申请还没下来所以只能依靠shell来干事了,不然看电影的时候namenode挂掉是多么蛋疼的一件事。废话不多说,脚本如下:

#!/bin/bash
while true;do
echo "************************************************************"
date
echo "PID of this script: $$" > /home/java/MONITOR_PID
# ================================================================
TCPListeningnum=`netstat -an | grep ":50070" | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l`
if [ $TCPListeningnum -eq 0 ]
then
{
echo "`date` : listener port is down">>/home/java/namenode_down.log
#如果50070端口down了,重启namenode服务
cd /data/run/hadoop-2.5.0-cdh5.3.0/sbin/
./hadoop-daemon.sh stop namenode
./hadoop-daemon.sh start namenode
}
else
{
echo "`date` : 50070端口正常" >>/home/java/namenode.log
date
}
fi
sleep 5;
done

目前看来只需要监控50070端口就行了,端口不在则重新启动namenode。启动脚本的命令:

nohup sh monitor.sh /dev/null 2>&1 &
赞(0) 打赏
未经允许不得转载:码农志 » Shell脚本每5秒监控一次Namenode端口
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏