一、hadoop群起脚本
#!/bin/bash
case $1 in
"start")
echo "======== 启动 Hadoop集群 ========"
echo "-------- 启动 hdfs --------"
ssh hadoop1 "source /etc/profile && /opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo "-------- 启动 yarn --------"
ssh hadoop2 "source /etc/profile && /opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo "-------- 启动 历史服务器 --------"
ssh hadoop1 "source /etc/profile && /opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo "======== 关闭 Hadoop集群 ========"
echo "-------- 关闭 历史服务器 --------"
ssh hadoop1 "source /etc/profile && /opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo "-------- 关闭 yarn --------"
ssh hadoop2 "source /etc/profile && /opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo "-------- 关闭 hdfs --------"
ssh hadoop1 "source /etc/profile && /opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
esac
二、显示集群中启动的进程脚本
#!/bin/bash
for host in hadoop1 hadoop2 hadoop3
do
echo "======== $host ========"
ssh $host '/opt/module/jdk1.8.0_212/bin/jps'
done
三、集群中分发脚本
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2.便利集群所有机器
for host in hadoop1 hadoop2 hadoop3
do
echo =============== $host ================
#3.便利所有目录,挨个发送
for file in $@
do
#4.判断文件是否存在
if [ -e $file ]
then
#5.获取父目录
pdir=$(cd -P $(dirname $file);pwd)
#6.获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
四、zookeeper群起脚本
#!/bin/bash
case $1 in
"start"){
for i in hadoop1 hadoop2 hadoop3
do
echo ----------- zookeeper $i 启动 --------------
ssh $i "source /etc/profile && /opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
}
;;
"stop"){
for i in hadoop1 hadoop2 hadoop3
do
echo ----------- zookeeper $i 停止 --------------
ssh $i "source /etc/profile && /opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
}
;;
"status"){
for i in hadoop1 hadoop2 hadoop3
do
echo ----------- zookeeper $i 状态 --------------
ssh $i "source /etc/profile && /opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
}
;;
esac
五、kafka群起脚本
#!/bin/bash
case $1 in
"start")
for i in hadoop1 hadoop2 hadoop3
do
echo "-------- 启动 $i kafka --------"
ssh $i "source /etc/profile && /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties "
done
;;
"stop")
for i in hadoop1 hadoop2 hadoop3
do
echo "-------- 停止 $i kafka --------"
ssh $i "source /etc/profile && /opt/module/kafka/bin/kafka-server-stop.sh "
done
;;
esac