#!/bin/sh
#echo "waring"
#read NAME #等待用户输入并把输入的值付给NAME
NAME=$1 #将脚本第一个参数赋给NAME
#引用变量时加上"{}",是个好习惯,利于shell辨别变量边界
if [ -z ${NAME} ] ; then #执行脚本没有输入参数,默认关闭hadoop
stop-all.sh
elif [ ${NAME} = "hadoop" ]; then #如果NAME中的值为"Hadoop",就只关闭Hadoop集群
echo "shutdown hadoop cluster"
stop-all.sh
elif [ ${NAME} = "hbase" ] ; then #停止HBase集群
echo "shutdown hbase on hadoop1"
ssh -t -p 22 hadoop1 "/usr/local/hbase/bin/stop-hbase.sh" #向远程机器发送命令,停止HBase集群
NUM=1
while [ ${NUM} -lt 4 ]
do
echo "shutdown hadoop${NUM}'s zkServer"
ssh -t -p 22 hadoop${NUM} "/usr/local/zk/bin/zkServer.sh stop" #向远程机器发送命令,停止HBase集群后停止ZooKeeper集群
NUM=$[${NUM}+1]
done
echo "shutdwon hadoop cluster"
stop-all.sh
else #参数输入错误,或者大小写不合适
echo "error"
fi #结束if命令
脚本简单的实现了Hadoop集群和HBase集群的停止,并没有在细节和严谨性方面做严格的修改。只为了在停止集群时只需要简单的一步即可而不需要再每台机器上操作命令,减少了操作上的麻烦。