Shell脚本编写(Hadoop篇)(持续更新)
一、集群控制(一键启停)
基本格式:
#!/bin/bash
# hadoop一键启停脚本
# 每个模式必须以右括号结束,命令结尾以双分号结束
case 变量 in
模式1)
命令1
;;
模式2)
命令2
;;
*)
默认命令
;;
esac
如果依托于输入变量来达到启停目的,那么最好在脚本开头进行变量输入的一个验证,使用以下结构:
# If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断
if [条件表达式];then
语句1
fi
具体写法(建议优先在本地使用Notepad++编写):
#!/bin/bash
# HADOOP_HOME: hadoop的安装目录
# "$#": 当前脚本参数个数
# "-lt": 小于
# hadoop102, hadoop103是你虚拟机当前的设置的名称,如果没设置,请用ip地址代替
if [ "$#" -lt 1 ];then
echo "缺少参数:start/stop;参数错误"
exit 1
fi
HADOOP_HOME=/opt/module/hadoop-3.1.3
case $1 in
"start")
echo "========== 启动hdfs =========="
ssh hadoop102 "$HADOOP_HOME/sbin/start-dfs.sh"
echo "========== 启动yarn =========="
ssh hadoop103 "$HADOOP_HOME/sbin/start-yarn.sh"
echo "========== 启动historyserver =========="
ssh hadoop102 "$HADOOP_HOEM/bin/mapred --daemon start historyserver"
;;
"stop")
echo "========== 启动historyserver =========="
ssh hadoop102 "$HADOOP_HOEM/bin/mapred --daemon stop historyserver"
echo "========== 关闭yarn =========="
ssh hadoop103 "$HADOOP_HOME/sbin/stop-yarn.sh"
echo "========== 关闭hdfs =========="
ssh hadoop102 "$HADOOP_HOME/sbin/stop-dfs.sh"
;;
*)
echo "输入错误"
;;
esac
注意:使用ssh记得多台虚拟机之间配置免密登录,如果不使用ssh,那就直接按照伪分布式来输入命令即可
编写完之后:
# 一般写在这里
cd /home/your_user/bin
# 编写
vim hadoop.sh
# 必须赋予权限
chomd 755 hadoop.sh
# 测试
hadoop.sh start
hadoop.sh stop