#!/bin/sh
#this is a shell script to monitor hbase process
#define hbase,zookeeper,hadoop home dir
HBASE_DIR=/usr/local/hbase-0.98/bin
HADOOP_DIR=/usr/local/hadoop-2.6.0/sbin
ZOOKEEPER_DIR=/usr/local/zookeeper-3.4.6/bin
while true
do
sleep 15
#copy the dev out put to file 'nohup.out'
/bin/cp /dev/null /nohup.out
#do cmd ps ,to find process named 'HMaster', and filter text'grep', and only get the process id
runID=`/bin/ps aux | grep HMaster | grep -v 'grep' | awk '{print $2}'`
if [ -z "$runID" ]
then
#if can not find the process, so run it ,
#nohup is meaning get the cmd output to file,
#> / dev/null 2>&1 & is meaning get the device error 2 trans to error 1, ignore error 1, and run in back ground
/usr/bin/nohup ${HBASE_DIR}/hbase-daemon.sh start master >/dev/null 2>&1 &
fi
runID=`/bin/ps aux | grep ResourceManager | grep -v 'grep' | awk '{print $2}'`
if [ -z "$runID" ]
then
/usr/bin/nohup ${HADOOP_DIR}/yarn-daemon.sh start resourcemanager >/dev/null 2>&1 &
fi
runID=`/bin/ps aux | grep JournalNode | grep -v 'grep' | awk '{print $2}'`
if [ -z "$runID" ]
then
/usr/bin/nohup ${HADOOP_DIR}/hadoop-daemon.sh start journalnode >/dev/null 2>&1 &
fi
runID=`/bin/ps aux | grep QuorumPeerMain | grep -v 'grep' | awk '{print $2}'`
if [ -z "$runID" ]
then
/usr/bin/nohup ${ZOOKEEPER_DIR}/zkServer.sh start >/dev/null 2>&1 &
fi
runID=`/bin/ps aux | grep NameNode | grep -v 'grep' | awk '{print $2}'`
if [ -z "$runID" ]
then
/usr/bin/nohup ${HADOOP_DIR}/hadoop-daemon.sh start namenode >/dev/null 2>&1 &
fi
runID=`/bin/ps aux | grep DFSZKFailoverController | grep -v 'grep' | awk '{print $2}'`
if [ -z "$runID" ]
then
/usr/bin/nohup ${HADOOP_DIR}/hadoop-daemon.sh start zkfc >/dev/null 2>&1 &
fi
done
monitor service
最新推荐文章于 2022-01-18 17:25:14 发布