ETJava Beta | Java    注册   登录
  • Hadoop 一键启动&停止脚本

    发表于 2025-11-08 11:25:07     阅读(29)     博客类别:CentOS7

    Hadoop 一键启动&停止脚本

     

    环境说明

     

    hadoop 安装路径:/export/server/hadoop

     

    一键启动脚本

     

    #!/bin/bash
    # 启动 Hadoop YARN 服务及 MapReduce HistoryServer
    
    # 配置 HADOOP_HOME
    HADOOP_HOME=/export/server/hadoop
    
    # 检查 Hadoop 目录是否存在
    if [ ! -d "$HADOOP_HOME" ]; then
      echo "错误:Hadoop 安装目录 $HADOOP_HOME 不存在,请检查配置!"
      exit 1
    fi
    
    # 启动顺序:HDFS > YARN > HistoryServer
    echo "===== 开始启动 Hadoop 相关服务 ====="
    
    # 启动HDFS
    echo "===== 启动Hadoop ===="
    $HADOOP_HOME/sbin/start-dfs.sh
    
    
    # 启动 YARN ResourceManager(主节点服务)
    echo "启动 YARN ResourceManager..."
    $HADOOP_HOME/sbin/start-yarn.sh
    
    # 启动 MapReduce HistoryServer(历史任务记录服务)
    echo "启动 MapReduce HistoryServer..."
    $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh start historyserver
    
    # 检查服务状态
    echo -e "\n===== 服务启动状态 ====="
    echo "YARN 服务状态:"
    $HADOOP_HOME/bin/yarn node -list 2>/dev/null | grep "Total Nodes" || echo "ResourceManager 未启动"
    
    echo -e "\nHistoryServer 状态:"
    jps | grep JobHistoryServer || echo "HistoryServer 未启动"
    
    echo -e "\n===== 启动完成 ====="
    
    echo -e "\n Web界面:
        HDFS: http://master:9870
        YARN: http://master:8088
        History: http://master:19888
    "
    
    read -p "是否执行jpsall?(y/n):" confirm
    
    if [ "$confirm" == "y" ] || [ "$confirm" == "Y" ]; then
      jpsall
    else
      exit 0
    fi
    
    
    

     

    执行授权 chmod +x /usr/local/bin/startall

     

    停止脚本

     

    #!/bin/bash
    # 停止 Hadoop YARN 服务及 MapReduce HistoryServer
    
    # 配置 Hadoop 安装目录(根据实际环境修改)
    HADOOP_HOME=/export/server/hadoop
    
    # 检查 Hadoop 目录是否存在
    if [ ! -d "$HADOOP_HOME" ]; then
      echo "错误:Hadoop 安装目录 $HADOOP_HOME 不存在,请检查配置!"
      exit 1
    fi
    
    # 停止顺序:先停 HistoryServer,再停 YARN 核心服务
    echo "===== 开始停止 Hadoop YARN 相关服务 ====="
    
    # 停止 MapReduce HistoryServer
    echo "停止 MapReduce HistoryServer..."
    $HADOOP_HOME/sbin/mr-jobhistory-daemon.sh stop historyserver
    
    # 停止 YARN 服务(包括 ResourceManager 和 NodeManager)
    echo "停止 YARN 服务..."
    $HADOOP_HOME/sbin/stop-yarn.sh
    
    # 停止Hadoop服务
    echo "停止 Hadoop 服务"
    $HADOOP_HOME/sbin/stop-dfs.sh
    
    # 检查停止状态
    echo -e "\n===== 服务停止状态 ====="
    echo "剩余相关进程(若为空则已全部停止):"
    jps | grep -E "ResourceManager|NodeManager|JobHistoryServer" || echo "所有服务已停止"
    
    echo -e "\n===== 停止完成 ====="
    

     

    执行授权 chmod +x /usr/local/bin/stopall