shell腳本監控hadoop集羣,實現集羣組件宕機重啓

 

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章