温馨提示×

linux hdfs如何停止

小樊
50
2026-08-25 06:59:37
栏目: 智能运维

在 Linux 上停止 HDFS,通常取决于你是单独安装的 Hadoop 还是**通过发行版(如 CDH / HDP / Ambari)**部署的。下面按常见情况说明。


一、使用 Hadoop 自带脚本停止 HDFS(最常用)

如果你是通过 Hadoop 官方发行版 部署的 HDFS:

1️⃣ 停止 HDFS(推荐方式)

$HADOOP_HOME/sbin/stop-dfs.sh

说明:

  • 会停止 NameNode、SecondaryNameNode、DataNode
  • 需要在 NameNode 所在机器执行
  • 前提:$HADOOP_HOME 已正确配置

2️⃣ 如果你还启动了 YARN

$HADOOP_HOME/sbin/stop-yarn.sh

或者一次性停止 HDFS + YARN:

$HADOOP_HOME/sbin/stop-all.sh

⚠️ stop-all.sh 已不推荐,但很多老环境仍在使用。


二、单独停止某个 HDFS 角色

停止 NameNode

$HADOOP_HOME/sbin/hadoop-daemon.sh stop namenode

停止 DataNode

$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode

停止 SecondaryNameNode

$HADOOP_HOME/sbin/hadoop-daemon.sh stop secondarynamenode

适合只想停某一个节点的情况


三、使用 systemd(部分发行版)

某些 Hadoop 发行版或自定义部署会使用 systemd:

sudo systemctl stop hadoop-namenode
sudo systemctl stop hadoop-datanode

或:

sudo systemctl stop hdfs

具体服务名取决于部署方式。


四、CDH / Cloudera Manager

如果你使用的是 Cloudera CDH

方式 1:Cloudera Manager 界面

Cloudera Manager → 集群 → HDFS → 操作 → 停止

方式 2:命令行

sudo systemctl stop cloudera-scm-agent

(不建议直接 kill HDFS 进程)


五、HDP / Ambari

sudo ambari-server stop
sudo ambari-agent stop

或在 Ambari Web UI 中停止 HDFS 服务。


六、强制停止(不推荐)

如果脚本失效,可查找进程并 kill:

jps

然后:

kill -9 <pid>

⚠️ 可能导致 元数据损坏、块丢失


七、验证是否已停止

jps

正常停止后应看不到:

  • NameNode
  • DataNode
  • SecondaryNameNode

八、常见错误

❌ 提示 JAVA_HOME 未设置

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk

❌ 没有权限

sudo -u hdfs $HADOOP_HOME/sbin/stop-dfs.sh

如果你愿意,可以告诉我:

  • Hadoop 版本(如 2.7 / 3.x)
  • 是否使用 CDH / HDP / 原生 Hadoop
  • 是单节点还是集群

我可以给你更精确的停止命令

0