hadoop集群一键启停组件命令汇总
2022-11-24 本文已影响0人
等你下课_星晴
1.一键启停hadoop集群
#! /bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== START Hadoop Cluster ==================="
echo " --------------- START hdfs ---------------"
ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/start-dfs.sh"
echo " --------------- START yarn ---------------"
ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/start-yarn.sh"
echo " --------------- START historyserver ---------------"
ssh hadoop02 "/opt/module/hadoop-3.3.0/bin/mapred --daemon start historyserver"
ssh hadoop01
;;
"stop")
echo " =================== STOP Hadoop Cluster ==================="
echo " --------------- STOP historyserver ---------------"
ssh hadoop02 "/opt/module/hadoop-3.3.0/bin/mapred --daemon stop historyserver"
echo " --------------- STOP yarn ---------------"
ssh hadoop02 "/opt/module/hadoop-3.3.0/sbin/stop-yarn.sh"
echo " --------------- STOP hdfs ---------------"
ssh hadoop01 "/opt/module/hadoop-3.3.0/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
给脚本权限:
chmod 777 cluster.sh
执行命令:
sh cluster.sh
2.编写所有服务器进程查看脚本
vim jpsall.sh
添加内容如下:
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps
done
赋予权限:
chmod 777 jpsall.sh
执行命令:
sh jpsall.sh
注意: 执行时报错:-bash: jps: command not found
错误原因:在shell脚本写的ssh到其他节点的时候默认是不加载配置文件的。linux并不能去找到java中jps的命令。
解决方案一:在ssh到其他节点的时候source 一下配置文件。
具体操作为:ssh $i “source /etc/profile;$*”
解决方案二:在ssh到其他节点的时候输入jps命令下的绝对路径。
在笔者的linux的jdk的绝对路径为:/opt/module/jdk1.8.0_144/bin这个目录下就有jps的命令。
具体操作为:ssh $i “/opt/module/jdk1.8.0_144/bin/$*”
解决方案三:在当前用户的家目录中输入命令ll -a会显示隐藏文件,修改配置文件.bashrc。
.bashrc 是当你登入shell时执行
在.bashrc里面加入source /etc/profile就行了。
但是这种方法不推荐,容易出错
原文链接:https://blog.csdn.net/wwg18895736195/article/details/125531860
3.zk集群启动脚本
#!/bin/bash
case $1 in
"start"){
for i in hadoop01 hadoop02 hadoop03
do
echo ---------- zookeeper $i 启动 ------------
ssh $i "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop01 hadoop02 hadoop03
do
echo ---------- zookeeper $i 停止 ------------
ssh $i "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop01 hadoop02 hadoop03
do
echo ---------- zookeeper $i 状态 ------------
ssh $i "source /etc/profile;/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac
4.kafka集群启动
#! /bin/bash
case $1 in
"start"){
for i in hadoop01 hadoop02 hadoop03
do
echo " --------启动 $i Kafka-------"
ssh $i "source /etc/profile;/opt/module/kafka3/bin/kafka-server-start.sh -daemon /opt/module/kafka3/config/server.properties"
done
};;
"stop"){
for i in hadoop01 hadoop02 hadoop03
do
echo " --------停止 $i Kafka-------"
ssh $i "/opt/module/kafka3/bin/kafka-server-stop.sh stop"
done
};;
esac