Hadoop高可用集群(HA)一键启动脚本
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
高可用集群启动时需要分别在每个节点上都执行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 +文件名