在 CentOS 上排查和解决 HDFS 报错,通常要分“看日志 → 定位类型 → 对症下药”。下面给你一个实用排查思路 + 常见报错及解决办法。
# NameNode
tail -n 200 /var/log/hadoop-hdfs/hadoop-hdfs-namenode-*.log
# DataNode
tail -n 200 /var/log/hadoop-hdfs/hadoop-hdfs-datanode-*.log
# 安全模式 / 权限问题也常在这里
jps
应至少看到:
报错示例
Cannot lock storage /dfs/nn. Already locked
原因
解决
# 杀掉残留进程
kill -9 $(pgrep -f NameNode)
# 检查目录权限
chown -R hdfs:hdfs /dfs/nn
现象
Incompatible clusterIDs解决
# 删除 DataNode 数据目录(会丢数据!)
rm -rf /dfs/dn/*
# 重启 DataNode
systemctl restart hadoop-hdfs-datanode
报错
Name node is in safe mode
解决
hdfs dfsadmin -safemode leave
⚠️ 如果是磁盘损坏,不要强制离开。
报错
Permission denied: user=root, access=WRITE
解决方式
# 方式1:用 hdfs 用户
sudo -u hdfs hdfs dfs -mkdir /test
# 方式2:关闭权限检查(测试环境)
vi hdfs-site.xml
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
现象
解决
# 防火墙
systemctl stop firewalld
systemctl disable firewalld
# SELinux
setenforce 0
vi /etc/selinux/config
# SELINUX=disabled
df -h
HDFS 默认:
解决
✅ jps 正常
✅ 防火墙关了
✅ SELinux 关了
✅ 目录权限是 hdfs
✅ 安全模式已退出
✅ 日志无 FATAL
你可以贴出:
jps 输出我可以直接告诉你是哪一行配置或命令的问题。