• Hadoop高可用集群(HA)一键启动脚本


    高可用集群启动时,需要分别在每个节点上都执行zkServer.sh start启动zookeeper,这个过程比较麻烦,并且当我们节点增多时,这个过程无疑不增加了我们的工作量,因此我们可以写一个一键启动所有节点zookeeper的脚本

    脚本实现:

    1.进入/usr/bin目录,创建zkstart文件
    2.打开zkstart文件,写入以下内容
    1. #!/bin/bash
    2. # 定义节点的主机名或 IP 地址
    3. node1="hadoop01"
    4. node2="hadoop02"
    5. node3="hadoop03"
    6. # 定义 ZooKeeper 的安装路径
    7. zk_home="/opt/programs/apache-zookeeper-3.9.0-bin"
    8. # 启动 ZooKeeper
    9. start_zookeeper() {
    10. echo "Starting ZooKeeper..."
    11. # 在每个节点上启动 ZooKeeper 服务器
    12. ssh -t $node1 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
    13. ssh -t $node2 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
    14. ssh -t $node3 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
    15. echo "ZooKeeper started successfully."
    16. }
    17. # 执行命令
    18. start_zookeeper
    19. exit 0

    脚本中的 start_zookeeper 函数会在每个节点上启动 ZooKeeper 服务器。通过 SSH 连接到每个节点,并在每个节点上运行 zkServer.sh start 命令来启动 ZooKeeper。

    一键关闭所有zookeeper的脚本即将该脚本中的zsServer.sh start改为stop即可。

    如果要启动zookeeper并且也启动集群,那么可以在改脚本中接着加入启动HDFS和YARN的语句,如下所示:

    1. #!/bin/bash
    2. # 定义节点的主机名或 IP 地址
    3. node1="hadoop01"
    4. node2="hadoop02"
    5. node3="hadoop03"
    6. # 定义 ZooKeeper 的安装路径
    7. zk_home="/opt/programs/apache-zookeeper-3.9.0-bin"
    8. # 定义 jdk 的安装路径
    9. JAVA_HOME=/opt/programs/jdk1.8.0_371
    10. PATH=$JAVA_HOME/bin:$PATH
    11. # 启动 ZooKeeper
    12. start_zookeeper() {
    13. echo "Starting ZooKeeper..."
    14. # 在每个节点上启动 ZooKeeper 服务器
    15. ssh -t $node1 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
    16. ssh -t $node2 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
    17. ssh -t $node3 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
    18. echo "ZooKeeper started successfully."
    19. }
    20. # 执行命令
    21. start_zookeeper
    22. echo "Starting HDFS..."
    23. start-dfs.sh
    24. echo "HDFS started successfully"
    25. echo "Starting Yarn..."
    26. start-yarn.sh
    27. echo "Yarn started successfully"
    28. exit 0

    注:若要改写为一键关闭的脚本不能直接改start-stop,需要严格按照先关闭YARN,接着关闭HDFS和zookeeper的顺序进行!

    脚本如下:

    1. #!/bin/bash
    2. # 定义节点的主机名或 IP 地址
    3. node1="hadoop01"
    4. node2="hadoop02"
    5. node3="hadoop03"
    6. # 定义 ZooKeeper 的安装路径
    7. zk_home="/opt/programs/apache-zookeeper-3.9.0-bin"
    8. # 定义 jdk 的安装路径
    9. JAVA_HOME=/opt/programs/jdk1.8.0_371
    10. PATH=$JAVA_HOME/bin:$PATH
    11. # 启动 ZooKeeper
    12. stop_zookeeper() {
    13. echo "Stopping ZooKeeper..."
    14. # 在每个节点上启动 ZooKeeper 服务器
    15. ssh -t $node1 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh stop"
    16. ssh -t $node2 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh stop"
    17. ssh -t $node3 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh stop"
    18. echo "ZooKeeper stopped successfully."
    19. }
    20. # 执行命令
    21. echo "Stopping Yarn..."
    22. stop-yarn.sh
    23. echo "Yarn stopped successfully"
    24. echo "Stopping HDFS..."
    25. stop-dfs.sh
    26. echo "HDFS stopped successfully"
    27. stop_zookeeper
    28. exit 0
    3.所有脚本文件创建完成后,都要执行如下命令为其设置权限:
    chmod 777 +文件名

  • 相关阅读:
    数据库的隔离级别
    css:button实现el-radio效果
    php获取农历日期节日
    JVM运行时数据区——虚拟机栈
    Gitlab分支策略建议指南
    基于LEX的词法分析实验
    不完全微分PD控制器(CODESYS源代码+算法详细介绍)
    Backtrader官方中文文档
    java毕业设计融呗智慧金融微资讯移动平台小程序端源码+lw文档+mybatis+系统+mysql数据库+调试
    Git如何上传代码至GitHub
  • 原文地址:https://blog.csdn.net/qq_62928039/article/details/133785046