在配置两个脚本之前,需要配置好ssh免密登陆
一、Hadoop集群启停脚本 myhadoop.sh
1、编写脚本
在用户家目录的bin
下,创建脚本myhadoop.sh
[wzq@hadoop102 ~]$ cd /home/wzq/bin/
[wzq@hadoop102 bin]$ vim myhadoop.sh
将以下代码插入到该文件中:
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
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 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop 集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
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 "Input Args Error..."
;;
esac
然后给该文件满权限:
chmod 777 myhadoop.sh
2、脚本解读
3、测试
关闭集群:
myhadoop.sh stop
启动集群:
myhadoop.sh start
然后使用jps
命令查看是否启动成功:
这只是在hadoop102
上查看了是否成功,同时也需要去hadoop103和104
上使用jps
命令查看,如果我们有非常多的服务器,逐个查看实在太麻烦了,所以编写一下,查看所有服务进程的脚本
二、查看三台服务器Java进程脚本 jpsall
1、编写脚本
在用户家目录的bin
下,创建脚本myhadoop.sh
[wzq@hadoop102 ~]$ cd /home/wzq/bin/
[wzq@hadoop102 bin]$ vim jpsall
将以下代码插入到该文件中:
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
然后给该文件满权限:
chmod 777 myhadoop.sh
2、脚本解读
3、测试
直接在控制台输入:jpsall
这样就直接查看到了所有主机的进程!
三、脚本分发
现在只在hadoop102
上写了脚本,也就是说只能在hadoop102
上面运行该脚本,现在做一下分发,让其余两台也都可以连接:
[wzq@hadoop102 ~]$ xsync /home/wzq/bin/