温馨提示×

如何检查CentOS的HDFS

小樊
46
2026-08-05 01:13:43
栏目: 智能运维

CentOS 上检查 HDFS(Hadoop Distributed File System) 是否正常,一般从 服务状态、HDFS 本身状态、磁盘与日志 几个方面入手。下面按常见场景给你一套完整检查方法。


一、检查 HDFS 服务是否运行

1️⃣ 使用 systemd(如果 Hadoop 已注册为服务)

systemctl status hadoop-namenode
systemctl status hadoop-datanode
systemctl status hadoop-secondarynamenode

如未注册,一般使用 Hadoop 自带脚本。


2️⃣ 使用 Hadoop 脚本检查(最常用)

查看 NameNode 状态

hdfs dfsadmin -report

✅ 正常输出示例:

  • Live datanodes
  • 各 DataNode 容量、使用率
  • 集群整体状态

❌ 若无输出或报错,说明 HDFS 有问题


3️⃣ 检查 NameNode 和 DataNode 进程

jps

✅ 正常应看到:

  • NameNode
  • DataNode
  • SecondaryNameNode(或 Standby NameNode)

❌ 缺少进程说明服务未启动


二、检查 HDFS 是否可访问

1️⃣ 列出 HDFS 根目录

hdfs dfs -ls /

✅ 能列出目录说明 HDFS 正常
❌ 报错如 Connection refused 说明 NameNode 未启动


2️⃣ 检查 HDFS 状态

hdfs fsck / -files -blocks -locations

用于检查:

  • 文件是否损坏
  • 块是否丢失
  • 副本是否不足

三、检查 NameNode 和 DataNode 日志(非常重要)

日志目录(默认)

cd $HADOOP_HOME/logs
ls

重点查看:

  • hadoop-*-namenode-*.log
  • hadoop-*-datanode-*.log

查看最新错误

tail -n 100 hadoop-root-namenode-*.log

常见错误:

  • java.io.IOException
  • Disk full
  • Permission denied
  • Incompatible cluster IDs

四、检查端口是否正常监听

NameNode 默认端口

ss -lntp | grep 9870

或(老版本)

ss -lntp | grep 50070

DataNode

ss -lntp | grep 9864

如果端口未监听,说明服务未启动。


五、检查磁盘空间(HDFS 常见故障)

df -h

⚠️ 如果 NameNode 或 DataNode 数据目录所在磁盘满了,HDFS 会直接不可用。

HDFS 数据目录一般在:

$HADOOP_HOME/data

/tmp/hadoop-*

六、检查 HDFS 配置(人为错误)

核心配置文件

$HADOOP_HOME/etc/hadoop/

重点检查:

  • core-site.xml
  • hdfs-site.xml

例如:

<property>
  <name>fs.defaultFS</name>
  <value>hdfs://localhost:9000</value>
</property>

七、常见问题速查表

现象 原因
jps 没有 NameNode 未启动或配置错误
hdfs dfs -ls 报错 NameNode 未运行
DataNode 启动后立即消失 集群 ID 不一致
HDFS 只读 NameNode 进入 SafeMode
磁盘满 DataNode 停止

八、退出 SafeMode(如进入)

hdfs dfsadmin -safemode leave

九、快速自检命令合集(推荐)

jps
hdfs dfsadmin -report
hdfs dfs -ls /
df -h

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

  • Hadoop 版本
  • 是否是单机 / 集群
  • 报了什么具体错误

我可以帮你精确定位问题 ✅

0