你这个问题比较宽泛,我需要先说明:HDFS 报错的原因非常多,和 CentOS 本身、Hadoop 版本、配置、磁盘、权限、网络等都有关系。下面我给你一个常见原因速查清单 + 排查思路,你可以对照看看;如果你愿意,把具体报错日志贴出来,我可以精准定位。
现象
Permission deniedAccessControlException原因
dfs.permissions解决
sudo -u hdfs hdfs dfs -chmod -R 777 /user
或
export HADOOP_USER_NAME=hdfs
✅ 建议:不要用 root 启动 Hadoop
现象
java: command not foundJAVA_HOME is not set解决
echo $JAVA_HOME
java -version
在 hadoop-env.sh 中设置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
现象
NameNode is not formattedIncompatible clusterIDs解决
hdfs namenode -format
⚠️ 注意:格式化会清空元数据,生产环境慎用
现象
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭 SELinux
setenforce 0
永久关闭:
vi /etc/selinux/config
SELINUX=disabled
现象
UnknownHostException检查
hostname
hostname -f
配置 hosts
vi /etc/hosts
示例:
192.168.1.10 master
192.168.1.11 slave1
现象
No space left on device检查
df -h
HDFS 使用目录:
dfs.datanode.data.dir
dfs.namenode.name.dir
现象
Address already in use检查
netstat -tunlp | grep 9000
netstat -tunlp | grep 8020
| CentOS | Hadoop |
|---|---|
| CentOS 7 | Hadoop 2.7 / 2.10 |
| CentOS 8 | Hadoop 3.x |
/opt/hadoop/logs/
重点看:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logjps
应有:
hdfs dfs -ls /
hdfs dfs -mkdir /test
你可以直接贴出:
hdfs dfsadmin -reportjps 输出我可以一步一步帮你修 ✅