#!/bin/sh
hdfs dfsadmin -report |awk -F":" 'BEGIN{print "Node_Name? ? ? Status? ? Capacity? DFS_Used? Non_DFS? ? DFS_Remain DFS_Used%? Contact_Time ";print "--------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------? ";Flag=0}{? if($1=="Name") Flag=1;? if(Flag==1 && $1=="Name")? ? ? ? ? ? ? ? ? ? printf ("%-16s",$2);? if(Flag==1 && $1=="Decommission Status ")? ? printf ("%-11s",$2);? if(Flag==1 && $1=="Configured Capacity")? ? ? printf ("%-11s",substr($2,index($2,"(")+1,index($2,")")-1-index($2,"(")));? if(Flag==1 && $1=="DFS Used")? ? ? ? ? ? ? ? printf ("%-11s",substr($2,index($2,"(")+1,index($2,")")-1-index($2,"(")));? if(Flag==1 && $1=="Non DFS Used")? ? ? ? ? ? printf ("%-11s",substr($2,index($2,"(")+1,index($2,")")-1-index($2,"(")));? if(Flag==1 && $1=="DFS Remaining")? ? ? ? ? ? printf ("%-11s",substr($2,index($2,"(")+1,index($2,")")-1-index($2,"(")));? if(Flag==1 && $1=="DFS Used%")? ? ? ? ? ? ? ? printf ("%-11s",$2);? if(Flag==1 && $1=="Last contact")? ? ? ? ? ? printf ("%s:%s\n",substr($2,6,15),$3);? ? ? if($1==null) Flag=0;? ? ? if(substr($1,1,14)=="Live datanodes")? ? ? ? ? {? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Total_nodes=substr($1,index($1,"(")+1,index($1,")")-index($1,"(")-1);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }? if(substr($1,1,14)=="Dead datanodes") {Dead_nodes=substr($1,index($1,"(")+1,index($1,")")-index($1,"(")-1);}? ? if($1=="Configured Capacity" && Flag==0) Total_Config_Capacity=substr($2,index($2,"(")+1,index($2,")")-1-index($2,"("));? ? ? if($1=="Present Capacity" && Flag==0)? ? Total_Present_Capacity=substr($2,index($2,"(")+1,index($2,")")-1-index($2,"("));? if($1=="DFS Remaining" && Flag==0)? ? ? Total_DFS_Remain=substr($2,index($2,"(")+1,index($2,")")-1-index($2,"("));? if($1=="DFS Used" && Flag==0)? ? ? ? ? ? Total_Used=substr($2,index($2,"(")+1,index($2,")")-1-index($2,"("));? if($1=="DFS Used%" && Flag==0)? ? ? ? ? Total_Used_per=$2;? }
END{
print "\n DFS Total Config_Capacity:? ",Total_Config_Capacity ;
print? " DFS Total Present_Capacity: ",Total_Present_Capacity ;
print? " DFS Total Used ( Used% ):? ",Total_Used,"(",Total_Used_per,")\n" ;
print " DFS Total Datanodes:? ",Total_nodes ;
print " DFS Dead? Datanodes:? ",Dead_nodes,"\n";
}'
#get every zookeeper
echo "----------------------------------------------"
echo "checking : Zookeeper status"
#ssh admin1 'source /bigdata/.bash_profile;hostname;/bigdata/zookeeper/bin/zkServer.sh status'
#ssh admin2 'source /bigdata/.bash_profile;hostname;/bigdata/zookeeper/bin/zkServer.sh status'
#ssh admin3 'source /bigdata/.bash_profile;hostname;/bigdata/zookeeper/bin/zkServer.sh status'
sh /bigdata/work/zk/check_zk.sh
echo "----------------------------------------------"
echo "checking : Namenode status"
n=0
n=`ssh admin1 'source /bigdata/.bash_profile;/bigdata/hadoop/bin/hdfs haadmin? -getServiceState nn1' | grep -i active | wc -l`
m=0
m=`ssh admin2 'source /bigdata/.bash_profile;/bigdata/hadoop/bin/hdfs haadmin? -getServiceState nn2' | grep -i active | wc -l`
if [ $n -eq 1 ] ;then
? echo "admin1? is Namenode active"
else
? echo "admin1? is Namenode standby"
fi
if [ $m -eq 1 ];then
? echo "admin2? is Namenode active"
else
? echo "admin2? is Namenode standby"
fi
echo "------------------hdfs zkfc----------------------------"
echo "checking : zkfc status"
n=0
n=`ssh admin1 'ps -ef|grep DFSZKFailoverController'|grep -v grep |wc -l`
if [ $n -eq 1 ] ;then
? echo "admin1? zkfc status OK"
else
? echo "admin1? zkfc status ERROR"
fi
m=0
m=`ssh admin2 'ps -ef|grep DFSZKFailoverController'|grep -v grep|wc -l`
if [ $m -eq 1 ] ;then
? echo "admin2? zkfc status OK"
else
? echo "admin2? zkfc status ERROR"
fi
echo "------------------hdfs JournalNode----------------------------"
echo "checking : JournalNode status"
n=0
n=`ssh admin1 'ps -ef|grep JournalNode'|grep -v grep|wc -l`
if [ $n -eq 1 ] ;then
? echo "admin1? JournalNode status OK"
else
? echo "admin1? JournalNode status ERROR"
fi
m=0
m=`ssh admin2 'ps -ef|grep JournalNode'|grep -v grep|wc -l`
if [ $m -eq 1 ] ;then
? echo "admin2? JournalNode status OK"
else
? echo "admin2? JournalNode status ERROR"
fi
k=0
k=`ssh admin3 'ps -ef|grep JournalNode'|grep -v grep|wc -l`
if [ $k -eq 1 ] ;then
? echo "admin3? JournalNode status OK"
else
? echo "admin3? JournalNode status ERROR"
fi
#echo "----------------------------------------------"
#echo "checking : Hmaster status"
#ssh admin1? 'source .bash_profile;get-active-master.rb'
#echo "checking : hadpmn04 status"
#ssh admin2? 'source .bash_profile;get-active-master.rb'
echo "----------------------------------------------"
echo "checking : yarn node status"