菜鸟科技网

如何正确重启Hadoop集群?不同节点组件的重启顺序与注意事项有哪些?

核心原则:先停后启

重启 Hadoop 的标准流程是:

如何正确重启Hadoop集群?不同节点组件的重启顺序与注意事项有哪些?-图1
(图片来源网络,侵删)
  1. 停止 Hadoop 集群。
  2. 启动 Hadoop 集群。

集群整体重启(推荐)

这是最常用、最规范的方法,适用于管理整个 Hadoop 集群,你需要登录到主节点,也就是运行 NameNodeResourceManager 的节点。

第 1 步:停止整个集群

在主节点上,执行 stop-all.sh 脚本,这个脚本会按照正确的顺序(先停止 YARN,再停止 HDFS)关闭集群中所有相关的 Hadoop 进程。

# 登录到 Hadoop 主节点
ssh hadoop-master
# 进入 Hadoop 安装目录的 sbin 目录
cd /usr/local/hadoop/sbin
# 执行停止脚本
./stop-all.sh

执行后,你应该会看到类似以下的输出,表明各个组件正在停止:

This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [hadoop-master]
hadoop-master: stopping namenode
hadoop-master: stopping datanode
Stopping secondarynamenodes on [hadoop-master]
hadoop-master: stopping secondarynamenode
Stopping resourcemanager on [hadoop-master]
hadoop-master: stopping nodemanager
Stopping historyserver on [hadoop-master]
hadoop-master: stopping historyserver

第 2 步:启动整个集群

在主节点上,执行 start-all.sh 脚本,这个脚本会按照正确的顺序(先启动 HDFS,再启动 YARN)启动集群。

如何正确重启Hadoop集群?不同节点组件的重启顺序与注意事项有哪些?-图2
(图片来源网络,侵删)
# 仍在 Hadoop 主节点的 sbin 目录下
./start-all.sh

执行后,你会看到各个组件正在启动:

This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [hadoop-master]
hadoop-master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-hadoop-master.out
hadoop-master: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-hadoop-master.out
Starting secondarynamenodes on [hadoop-master]
hadoop-master: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-hadoop-master.out
Starting resourcemanager
hadoop-master: starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-resourcemanager-hadoop-master.out
Starting nodemanagers on [hadoop-slave1, hadoop-slave2]
hadoop-slave1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-hadoop-slave1.out
hadoop-slave2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-hadoop-slave2.out
Starting historyserver
hadoop-master: starting historyserver, logging to /usr/local/hadoop/logs/mapred-hadoop-historyserver-hadoop-master.out

分别启动和停止(现代 Hadoop 推荐)

在新版本的 Hadoop 中,start-all.shstop-all.sh 被标记为已弃用,推荐的做法是分别管理 HDFS 和 YARN 组件,这样更清晰、更可控。

第 1 步:分别停止

# 1. 停止 HDFS 相关服务
./stop-dfs.sh
# 2. 停止 YARN 相关服务
./stop-yarn.sh

第 2 步:分别启动

# 1. 启动 HDFS 相关服务
./start-dfs.sh
# 2. 启动 YARN 相关服务
./start-yarn.sh

逐个节点重启(不推荐用于整体重启)

这种方法适用于重启单个故障节点,而不是整个集群,如果你想重启整个集群,这种方法效率极低且容易出错。

流程:

如何正确重启Hadoop集群?不同节点组件的重启顺序与注意事项有哪些?-图3
(图片来源网络,侵删)
  1. 登录到从节点
  2. 停止该节点上的 DataNode 和 NodeManager。
  3. 启动该节点上的 DataNode 和 NodeManager。
  4. 对集群中的每一个从节点重复以上步骤。
# 登录到从节点
ssh hadoop-slave1
# 停止 DataNode 和 NodeManager
/usr/local/hadoop/sbin/hadoop-daemon.sh stop datanode
/usr/local/hadoop/sbin/yarn-daemon.sh stop nodemanager
# 启动 DataNode 和 NodeManager
/usr/local/hadoop/sbin/hadoop-daemon.sh start datanode
/usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager

然后登录到 hadoop-slave2 重复操作。


验证重启是否成功

无论使用哪种方法,重启后都应该验证集群状态是否正常。

检查 Web UI

  • HDFS 状态: http://<hadoop-master-ip>:9870
    • 查看概览页面,确认 "Live Nodes" 和 "Total Nodes" 数量正确。
    • 检查 "NameNode" 和 "DataNode" 状态是否为 "Live"。
  • YARN 状态: http://<hadoop-master-ip>:8088
    • 查看集群概览,确认 "Active Nodes" 数量正确。
    • 检查 "NodeManager" 状态是否正常。

使用命令行检查

# 检查 HDFS 状态
hdfs dfsadmin -report
# 检查 NameNode 是否处于安全模式
hdfs dfsadmin -safemode get
# 如果输出 "Safe mode is OFF",说明已正常退出安全模式,可以开始读写数据。
# 检查 YARN 节点状态
yarn node -list

⚠️ 重要提醒

  1. 数据安全stop-all.sh 会关闭所有服务,但不会删除 HDFS 上的数据,HDFS 的数据是持久化的,如果是在一个全新的、没有数据配置的集群上重启,它会进入安全模式并等待数据块报告。
  2. 生产环境:在生产环境中,重启集群通常是一个计划内的维护操作,请提前通知所有用户,并确保没有正在运行的重要作业。
  3. 配置文件:确保所有节点的 core-site.xml, hdfs-site.xml, yarn-site.xml 等配置文件是一致的,否则可能导致集群启动失败或行为异常。
  4. 日志排查:如果启动失败,请查看各节点的日志文件,通常位于 /usr/local/hadoop/logs/ 目录下,根据错误信息进行排查。
分享:
扫描分享到社交APP
上一篇
下一篇