菜鸟科技网

Hadoop集群重启命令具体是哪些?

重启操作需要分集群角色节点进行,并且必须遵循严格的顺序,否则可能会导致数据丢失或服务不可用。

Hadoop集群重启命令具体是哪些?-图1
(图片来源网络,侵删)

核心原则:重启顺序

重启 Hadoop 集群,最安全、最标准的顺序是:

  1. 停止 YARN:先停止资源管理相关的服务。
  2. 停止 HDFS:再停止存储相关的服务。
  3. 重新启动 HDFS:先启动存储服务。
  4. 重新启动 YARN:最后启动资源管理服务。

为什么是这个顺序? 因为 HDFS 是 YARN 运行的基础,YARN 的 NodeManager 会在 DataNode 上运行,而 MapReduce 等计算任务会读写 HDFS 上的数据,如果先停止 HDFS,YARN 的任务会失败;如果先启动 YARN,它可能会试图与尚未启动的 HDFS 交互,导致问题。


HDFS 重启命令

HDFS 的核心进程是 NameNodeDataNode,重启 HDFS 实际上是重启这些进程。

在 Hadoop 集群的所有节点上执行

我们使用 Hadoop 提供的脚本,这些脚本会通过 SSH 自动在所有配置好的节点上执行相应命令。

Hadoop集群重启命令具体是哪些?-图2
(图片来源网络,侵删)

(1) 停止 HDFS

使用 stop-dfs.sh 脚本,它会停止 NameNode、DataNode 和 SecondaryNameNode。

# 进入 Hadoop 安装目录的 sbin 目录下
cd /path/to/hadoop-3.x.x/sbin/
# 执行停止命令
./stop-dfs.sh

效果:

  • 在 NameNode 节点上停止 NameNode 进程。
  • 在所有 DataNode 节点上停止 DataNode 进程。
  • 在 SecondaryNameNode 节点上停止 SecondaryNameNode 进程。

(2) 启动 HDFS

使用 start-dfs.sh 脚本。

# 进入 Hadoop 安装目录的 sbin 目录下
cd /path/to/hadoop-3.x.x/sbin/
# 执行启动命令
./start-dfs.sh

效果:

Hadoop集群重启命令具体是哪些?-图3
(图片来源网络,侵删)
  • 在 NameNode 节点上启动 NameNode 进程。
  • 在所有 DataNode 节点上启动 DataNode 进程。
  • 在 SecondaryNameNode 节点上启动 SecondaryNameNode 进程。

YARN 重启命令

YARN 的核心进程是 ResourceManagerNodeManager

在 Hadoop 集群的所有节点上执行

(1) 停止 YARN

使用 stop-yarn.sh 脚本。

# 进入 Hadoop 安装目录的 sbin 目录下
cd /path/to/hadoop-3.x.x/sbin/
# 执行停止命令
./stop-yarn.sh

效果:

  • 在 ResourceManager 节点上停止 ResourceManager 进程。
  • 在所有 NodeManager 节点上停止 NodeManager 进程。

(2) 启动 YARN

使用 start-yarn.sh 脚本。

# 进入 Hadoop 安装目录的 sbin 目录下
cd /path/to/hadoop-3.x.x/sbin/
# 执行启动命令
./start-yarn.sh

效果:

  • 在 ResourceManager 节点上启动 ResourceManager 进程。
  • 在所有 NodeManager 节点上启动 NodeManager 进程。

完整的集群重启流程

这是在生产环境中进行完整重启的标准操作流程。

# ===== 第一步:停止所有服务 =====
# 1. 停止 YARN 服务
./stop-yarn.sh
# 2. 停止 HDFS 服务
./stop-dfs.sh
# ===== 第二步:重新启动所有服务 =====
# 3. 启动 HDFS 服务
./start-dfs.sh
# 4. 启动 YARN 服务
./start-yarn.sh
# ===== (可选) 第五步:验证服务状态 =====
# 5. 检查 HDFS 状态
./hdfs dfsadmin -report
# 6. 检查 YARN 状态
./yarn node -list

重启单个节点或单个服务

有时候我们只需要重启某个节点上的某个服务,而不是整个集群。

重启单个节点上的所有 Hadoop 服务

假设你要重启 node01 这台机器。

# 在 node01 上执行
# 1. 停止该节点上的 Hadoop 进程
#    停止 DataNode 和 NodeManager
./hadoop-daemon.sh stop datanode
./yarn-daemon.sh stop nodemanager
# 2. (可选) 如果该节点是 NameNode 或 ResourceManager
#    ./hadoop-daemon.sh stop namenode
#    ./yarn-daemon.sh stop resourcemanager
# 3. 重启该节点上的 Hadoop 进程
#    启动 DataNode 和 NodeManager
./hadoop-daemon.sh start datanode
./yarn-daemon.sh start nodemanager
# 4. (可选) 如果该节点是 NameNode 或 ResourceManager
#    ./hadoop-daemon.sh start namenode
#    ./yarn-daemon.sh start resourcemanager

重启单个服务(只重启 HDFS)

如果只是 HDFS 出现问题,可以只重启 HDFS。

# 停止 HDFS
./stop-dfs.sh
# 启动 HDFS
./start-dfs.sh

在 YARN (MR2) 上重启失败的 Application

这和重启集群服务不同,指的是重启一个已经提交但运行失败或被杀死的特定任务。

# 查看所有应用
./yarn application -list -appStates ALL
# 假设你要重启的应用 ID是 application_1234567890012_0001
# 先杀死这个应用
./yarn application -kill application_1234567890012_0001
# 然后重新提交你的应用程序jar包
#  hadoop jar my-job.jar com.example.MyDriver input output
操作目标 命令 说明
完整集群重启 ./stop-yarn.sh -> ./stop-dfs.sh -> ./start-dfs.sh -> ./start-yarn.sh 标准且安全的顺序。
仅重启 HDFS ./stop-dfs.sh -> ./start-dfs.sh 当 HDFS 服务异常时使用。
仅重启 YARN ./stop-yarn.sh -> ./start-yarn.sh 当 YARN 服务异常时使用。
重启单个节点 hadoop-daemon.sh / yarn-daemon.sh 用于修复单个节点上的服务问题。
重启单个应用 yarn application -kill <app_id> -> 重新提交 用于处理运行失败的任务。

重要提示:

  • 执行这些命令前,确保你有足够的权限。
  • 在生产环境执行前,最好在测试环境验证。
  • 始终遵循 停止 YARN -> 停止 HDFS -> 启动 HDFS -> 启动 YARN 的顺序。
分享:
扫描分享到社交APP
上一篇
下一篇