#!/bin/sh
#echo "waring"
#read NAME #等待用戶輸入並把輸入的值付給NAME
NAME=$1 #將腳本第一個參數賦給NAME
#引用變量時加上"{}",是個好習慣,利於shell辨別變量邊界
if [ -z ${NAME} ] ;then #默認如果爲空,hadoop start
echo "1.start hadoop on ${HOSTNAME}"
start-all.sh
elif [ "${NAME}" = "hadoop" ];then #如果NAME中的值爲"hadoop",則繼續執行if
echo "2.start hadoop on ${HOSTNAME}"
start-all.sh
elif [ "${NAME}" = "hbase" ] ;then #否則就執行else if
start-all.sh
#for loop in 1 2 3
NUM=1
<pre name="code" class="plain">#測試的zookeeper服務器集羣是三個節點
while [ ${NUM} -lt 4 ]
do
echo "start zkServer on hadoop${NUM}"
ssh -t -p 22 hadoop${NUM} "/usr/local/zk/bin/zkServer.sh start" #向遠程機器發送命令
NUM=$[${NUM}+1]
done
ssh -t -p 22 hadoop1 "/usr/local/hbase/bin/start-hbase.sh" #向遠程機器發送命令
else
echo "error"
fi #結束if命令
腳本簡單的實現了Hadoop集羣和HBase集羣的啓動,避免了在每個節點上的操作,簡化了集羣啓動操作。同時 腳本還存在一些bug,僅僅爲簡化集羣啓動