在 Linux 上停止 HDFS 服务,通常取决于你是以 Hadoop 自带脚本方式 还是 生产环境(如 CDH / HDP / 手动部署) 管理的。下面分情况说明。
如果你是通过官方 Hadoop 安装的,一般直接用脚本停止:
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/stop-dfs.sh
脚本会自动停止:
$HADOOP_HOME/sbin/hadoop-daemon.sh stop namenode
$HADOOP_HOME/sbin/hadoop-daemon.sh stop datanode
$HADOOP_HOME/sbin/hadoop-daemon.sh stop secondarynamenode
在 Hadoop 3.x 中也可用:
$HADOOP_HOME/bin/hdfs --daemon stop namenode
$HADOOP_HOME/bin/hdfs --daemon stop datanode
如果你配置了 systemd 服务:
systemctl stop hadoop-namenode
systemctl stop hadoop-datanode
或(取决于你的服务名):
systemctl stop hdfs
# 不建议手动杀进程
# 正确方式:
service hadoop-hdfs-namenode stop
service hadoop-hdfs-datanode stop
或通过 Cloudera Manager 界面停止。
ambari-server stop
# 或界面停止 HDFS 服务
jps
正常情况下不应再看到:
kill -9 `jps | grep NameNode | awk '{print $1}'`
⚠️ 可能导致元数据不一致,生产环境慎用
如果你能告诉我:
我可以给你更精确的停止命令。