1)集群部署规划
注意:
- NameNode和SecondaryNameNode不要安装在同一台服务器
- ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
hadoop102 | hadoop103 | hadoop104 | |
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
①在/home/wyr/bin目录下创建xcall文件
[wyr@hadoop102 opt]$ cd /home/wyr
[wyr@hadoop102 ~]$ mkdir bin
[wyr@hadoop102 ~]$ cd bin
[wyr@hadoop102 bin]$ vim xcall
一、只负责Hadoop启动、关闭
hadoop.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input...(启动Hadoop集群:xcall start;停止Hadoop集群:xcall stop;Hadoop集群状态:xcall status)"
exit ;
fi
case $1 in
"start")
echo " ======启动 hadoop集群 ======="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 历史服务器 historyserver ---------------"
ssh hadoop102 "mapred --daemon start historyserver"
;;
"stop")
echo " ==========关闭 hadoop集群 ========="
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
echo " --------------- 关闭 历史服务器 historyserver ---------------"
ssh hadoop102 "mapred --daemon stop historyserver"
;;
"status")
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
;;
*)
echo "Input Args Error..."
;;
esac
二、整个Hadoop集群
(1)hadoop集群、(2)Zookeeper集群、(3)Kafka集群、(4)历史服务器 historyserver、(5)Kafka集群监控平台Eagle
xcall.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input...(启动Hadoop集群:xcall start;停止Hadoop集群:xcall stop;Hadoop集群状态:xcall status)"
exit ;
fi
case $1 in
"start")
echo " ==================依次启动:(1)hadoop集群、(2)Zookeeper集群、(3)Kafka集群、(4)历史服务器 historyserver、(5)Kafka集群监控平台Eagle ==================="
echo -e "\n(1)启动 hadoop集群 ======="
echo " --------------- 启动 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo -e "\n(2)启动 Zookeeper集群 ======="
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
echo -e "\n(3)启动 Kafka集群 ======="
for host in hadoop103 hadoop102 hadoop104
do
echo "---------- $1 $host 的kafka ----------"
ssh $host "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
done
echo -e "\n(4)启动 历史服务器 historyserver ======="
ssh hadoop102 "mapred --daemon start historyserver"
echo -e "\n(5)启动 Kafka集群监控平台Eagle ======="
for host in hadoop103 hadoop102 hadoop104
do
echo "---------- $1 $host 的Eagle ----------"
ssh $host "/opt/module/efak/bin/ke.sh start"
done
;;
"stop")
echo " ==================依次启动:(1)Kafka集群监控平台Eagle、(2)历史服务器 historyserver、(3)Kafka集群、(4)Zookeeper集群、(5)hadoop集群==================="
echo -e "\n(1)关闭 Kafka集群监控平台Eagle ======="
for host in hadoop103 hadoop102 hadoop104
do
echo "---------- $1 $host 的Eagle ----------"
ssh $host "/opt/module/efak/bin/ke.sh stop"
done
echo -e "\n(2)关闭 历史服务器 historyserver ======="
ssh hadoop102 "mapred --daemon stop historyserver"
echo -e "\n(3)关闭 Kafka集群 ======="
for host in hadoop103 hadoop102 hadoop104
do
echo "---------- $1 $host 的kafka ----------"
ssh $host "/opt/module/kafka/bin/kafka-server-stop.sh"
done
echo -e "\n等待30秒,让Kafka集群完全关闭后才可关闭Zookeeper"
sleep 30
echo -e "\n(4)关闭 Zookeeper集群 ======="
for i in hadoop102 hadoop103 hadoop104
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
echo -e "\n(5)关闭 hadoop集群 ======="
echo " --------------- 关闭 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
"status")
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
;;
*)
echo "Input Args Error..."
;;
esac
修改脚本 xcall 具有执行权限
[wyr@hadoop102 bin]$ chmod +x xcall
[wyr@hadoop102 bin]$ pwd
/home/wyr/bin
[wyr@hadoop102 bin]$ sudo cp /home/wyr/bin/xcall /usr/bin/