clusterMonitor.sh(主節點)
#!/bin/bash
echo '.......................................'
QuorumPeerMain=$(jps | grep ' QuorumPeerMain')
ZKFC=$(jps | grep ' DFSZKFailoverController')
NameNode=$(jps | grep ' NameNode')
DataNode=$(jps | grep ' DataNode')
JournalNode=$(jps | grep ' JournalNode')
ResourceManager=$(jps | grep ' ResourceManager')
NodeManager=$(jps | grep ' NodeManager')
HMaster=$(jps | grep ' HMaster')
HRegionServer=$(jps | grep ' HRegionServer')
echo $QuorumPeerMain
echo $ZKFC
echo $NameNode
echo $DataNode
echo $JournalNode
echo $ResourceManager
echo $NodeManager
echo $HMaster
echo $HRegionServer
echo '.......................................'
if [[ -z $QuorumPeerMain ]]; then
echo $(date) 'zookeeper is not running.' >> /home/logs/clusterMonitor.log
zkServer.sh start
elif [[ -z $ZKFC ]]; then
echo $(date) 'ZKFC is not running.' >> /home/logs/clusterMonitor.log
hdfs --daemon start zkfc
fi
if [[ -z $NameNode ]]; then
echo $(date) 'NameNode is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $DataNode ]]; then
echo $(date) 'DataNode is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $JournalNode ]]; then
echo $(date) 'JournalNode is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $ResourceManager ]]; then
echo $(date) 'ResourceManager is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $NodeManager ]]; then
echo $(date) 'NodeManager is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $HMaster ]]; then
echo $(date) 'HMaster is not running.' >> /home/logs/clusterMonitor.log
$HBASE_HOME/bin/start-hbase.sh
fi
if [[ -z $HRegionServer ]]; then
echo $(date) 'HRegionServer is not running.' >> /home/logs/clusterMonitor.log
$HBASE_HOME/bin/start-hbase.sh
fi
echo '.......................................'
clusterMonitor.sh(從節點)
#!/bin/bash
echo '.......................................'
QuorumPeerMain=$(jps | grep ' QuorumPeerMain')
DataNode=$(jps | grep ' DataNode')
NodeManager=$(jps | grep ' NodeManager')
HRegionServer=$(jps | grep ' HRegionServer')
echo $QuorumPeerMain
echo $DataNode
echo $NodeManager
echo $HRegionServer
echo '.......................................'
if [[ -z $QuorumPeerMain ]]; then
echo $(date) 'zookeeper is not running.' >> /home/logs/clusterMonitor.log
zkServer.sh start
fi
if [[ -z $DataNode ]]; then
echo $(date) 'DataNode is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $NodeManager ]]; then
echo $(date) 'NodeManager is not running.' >> /home/logs/clusterMonitor.log
$HADOOP_HOME/sbin/start-all.sh
fi
if [[ -z $HRegionServer ]]; then
echo $(date) 'HRegionServer is not running.' >> /home/logs/clusterMonitor.log
$HBASE_HOME/bin/start-hbase.sh
fi
echo '.......................................'
定時執行
vim /etc/crontab
# 每十分鐘監控一次
*/10 * * * * root /home/shell/clusterMonitor.sh