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
posted @ 2025-06-13 17:25  Meditation丶  阅读(18)  评论(1)    收藏  举报