Shell脚本一键启动关闭HDFS&YARN&Hive&ZooKeeper&Hbase&Spark服务

一、启动服务

此脚本可以选择单独启动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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值