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

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

脚本实现:

1.进入/usr/bin目录,创建zkstart文件
2.打开zkstart文件,写入以下内容
复制代码
#!/bin/bash

# 定义节点的主机名或 IP 地址
node1="hadoop01"
node2="hadoop02"
node3="hadoop03"

# 定义 ZooKeeper 的安装路径
zk_home="/opt/programs/apache-zookeeper-3.9.0-bin"


# 启动 ZooKeeper
start_zookeeper() {
  echo "Starting ZooKeeper..."

  # 在每个节点上启动 ZooKeeper 服务器
  ssh -t $node1 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
  ssh -t $node2 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
  ssh -t $node3 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"

  echo "ZooKeeper started successfully."
}

# 执行命令
start_zookeeper


exit 0

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

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

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

复制代码
#!/bin/bash

# 定义节点的主机名或 IP 地址
node1="hadoop01"
node2="hadoop02"
node3="hadoop03"

# 定义 ZooKeeper 的安装路径
zk_home="/opt/programs/apache-zookeeper-3.9.0-bin"
# 定义 jdk 的安装路径
JAVA_HOME=/opt/programs/jdk1.8.0_371
PATH=$JAVA_HOME/bin:$PATH

# 启动 ZooKeeper
start_zookeeper() {
  echo "Starting ZooKeeper..."

  # 在每个节点上启动 ZooKeeper 服务器
  ssh -t $node1 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
  ssh -t $node2 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"
  ssh -t $node3 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh start"

  echo "ZooKeeper started successfully."
}

# 执行命令
start_zookeeper

  echo "Starting HDFS..."
start-dfs.sh
  echo "HDFS started successfully"

  echo "Starting Yarn..."
start-yarn.sh
  echo "Yarn started successfully"

exit 0

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

脚本如下:

复制代码
#!/bin/bash

# 定义节点的主机名或 IP 地址
node1="hadoop01"
node2="hadoop02"
node3="hadoop03"

# 定义 ZooKeeper 的安装路径
zk_home="/opt/programs/apache-zookeeper-3.9.0-bin"
# 定义 jdk 的安装路径
JAVA_HOME=/opt/programs/jdk1.8.0_371
PATH=$JAVA_HOME/bin:$PATH

# 启动 ZooKeeper
stop_zookeeper() {
  echo "Stopping ZooKeeper..."

  # 在每个节点上启动 ZooKeeper 服务器
  ssh -t $node1 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh stop"
  ssh -t $node2 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh stop"
  ssh -t $node3 "export JAVA_HOME=$JAVA_HOME; $zk_home/bin/zkServer.sh stop"

  echo "ZooKeeper stopped successfully."
}

# 执行命令

 echo "Stopping Yarn..."
stop-yarn.sh
  echo "Yarn stopped successfully"

echo "Stopping HDFS..."
stop-dfs.sh
  echo "HDFS stopped successfully"

stop_zookeeper

exit 0
3.所有脚本文件创建完成后,都要执行如下命令为其设置权限:
复制代码
chmod 777 +文件名
相关推荐
插件开发20 分钟前
vs2015 cuda c++ cdpSimplePrint范例,递归功能实现演示
linux·c++·算法
java知路21 分钟前
centos euler离线下载docker镜像
linux·docker·centos
就改了1 小时前
Windows Elasticsearch 完整上手教程
大数据·windows·elasticsearch
yyuuuzz1 小时前
独立站运营的几个技术层面常见问题
大数据·运维·服务器·网络·数据库·aws
utf8mb4安全女神1 小时前
MySQL8.0.43的下载安装【二进制安装】【shell脚本】【环境准备】【my.cnf配置】【修改密码】
linux·服务器·网络
XIAOYU6720131 小时前
高中物理成绩优异,适合报考大数据哪个细分专业数学成绩偏弱,还适合填报大数据相关专业吗
大数据
2601_954971131 小时前
大数据需要掌握哪些主流大数据工具框架
大数据
凡人叶枫1 小时前
Effective C++ 条款33:避免遮掩继承而来的名字
linux·服务器·开发语言·c++·嵌入式开发
凡人叶枫1 小时前
Effective C++ 条款31:将文件间的编译依存关系降至最低
linux·开发语言·c++·php·嵌入式开发·effective c++
冰帆<2 小时前
[特殊字符] 深度起底:突破火山引擎 Ark-Helper 的 Linux 底层环境死锁,顺手魔改一份 Windows 一键安装脚本!
linux·windows·火山引擎