一、启动服务
此脚本可以选择单独启动hadoop或spark或hadoop+spark
#!/bin/bash
SP="spark Master Worker bash_/opt/software/spark/spark244/sbin/start-all.sh"
HB="hbase HMaster HRegionServer start-hbase.sh"
ZK="zookeeper QuorumPeerMain zkServer.sh_start"
HV="hive RunJar RunJar nohup_hive_--service_?>~/hive2.log_2>&1_&"
YN="yarn NodeManager ResourceManager start-yarn.sh"
HD="dfs DataNode NameNode SecondaryNameNode start-dfs.sh"
function checkStart(){
COUNT=0
ARR=$@
ARR=($ARR)
SIZE=$(($#-2))
for i in `seq 1 $SIZE`
do
V=`jps|grep ${ARR[$i]}`
if [ "$V" ]
then
if [ $1 == "hive" ]
then
V=($V)
COUNT=$((${#V[*]}/2))
break
else
((COUNT++))
fi
fi
done
if [ $COUNT -eq $SIZE ]
then
echo " ok ]"
else
echo "fail and will exit ..."
exit 1
fi
}
function start(){
ARR=$@
ARR=($ARR)
OUTPUT=${ARR[$#-1]}
OUTPUT="${OUTPUT//_/ }"
echo -n "start $1 ... $OUTPUT ["
if [[ $OUTPUT =~ ^nohup ]]
then
eval ${OUTPUT/\?/metastore}
sleep 4s
eval ${OUTPUT/\?/hiveserver2}
sleep 8s
else
if [ ${ARR[0]} = "zookeeper" ]
then
OUTPUT=`eval "OUTPUT>zklog.log 2>&1"`
else
OUTPUT=`$OUTPUT`
fi
fi
checkStart $@
}
if [ "$1" ]
then
if [ "$1" = "hadoop" -o "$1" = "spark" -o "$1" = "all" ]
then
start $HD
start $YN
else
echo "invalid arguement : [ $1 ] , only hadoop spark and all supported"
exit 0
fi
if [ "$1" = "hadoop" -o "$1" = "all" ]
then
start $HV
start $ZK
start $HB
fi
if [ "$1" = "spark" -o "$1" = "all" ]
then
start $SP
fi
else
echo "please input one arguement,hadoop spark and all supported"
fi
二、关闭服务
#!/bin/bash
SP="spark Master Worker bash_/opt/software/spark/spark244/sbin/stop-all.sh"
HB="hbase HMaster HRegionServer stop-hbase.sh"
ZK="zookeeper QuorumPeerMain zkServer.sh_stop>~/zk.log_2>&1"
HV="hive RunJar RunJar kill"
YN="yarn NodeManager ResourceManager stop-yarn.sh"
HD="dfs DataNode NameNode SecondaryNameNode stop-dfs.sh"
function checkStop(){
STOP=0
ARR=$@
ARR=($ARR)
for i in `seq 1 $(($#-2))`
do
V=`jps|grep ${ARR[$i]}`
if [ "$V" ]
then
((STOP++))
break
fi
done
if [ $STOP -eq 0 ]
then
echo "stop $1 successfully"
else
echo "fail to stop $1"
fi
}
function stop(){
ARR=$@
ARR=($ARR)
COUNT=0
for i in `seq 1 $(($#-2))`
do
V=`jps|grep ${ARR[$i]}`
if [ "$V" ]
then
echo "start to stop $1 ..."
OUTPUT=${ARR[$#-1]}
((COUNT++))
if [ $OUTPUT = "kill" ]
then
PID=`jps|grep RunJar|awk 'NR==1 {print $1}'`
OUTPUT=`kill -9 $PID`
else
OUTPUT=${OUTPUT//_/ }
OUTPUT=`eval $OUTPUT`
if [ ${ARR[0]} = "spark" ]
then sleep 4s
fi
break
fi
fi
done
if [ $COUNT -eq 0 ]
then
echo "no $1 to stop"
else
checkStop $@
fi
}
stop $SP
stop $HB
stop $ZK
stop $HV
stop $YN
stop $HD