在 Linux 上“HDFS 用不了”通常是环境/配置/服务状态问题,而不是 HDFS 本身坏了。下面按最常见原因 → 排查方法 → 解决办法给你一个清单。
最常见,尤其刚装完或重启机器后。
检查:
jps
应该至少看到:
NameNodeDataNodeSecondaryNameNode如果没有:
start-dfs.sh
典型报错:
hdfs: command not found
检查:
echo $HADOOP_HOME
which hdfs
如果为空,配置:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
建议写进:
~/.bashrc
重点检查:
$HADOOP_HOME/etc/hadoop/
关键文件:
core-site.xmlhdfs-site.xml最小可用示例(伪分布式):
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
改完要格式化:
hdfs namenode -format
检查:
netstat -tunlp | grep 9000
或:
ping localhost
如果 localhost 不通:
cat /etc/hosts
应有:
127.0.0.1 localhost
HDFS 默认用启动 Hadoop 的用户访问。
错误示例:
Permission denied: user=root, access=WRITE
解决:
hdfs dfs -chown -R 用户名:用户名 /
或用普通用户启动 Hadoop。
CentOS / RHEL:
systemctl stop firewalld
setenforce 0
df -h
DataNode 磁盘满会直接下线。
jps
echo "---"
hdfs dfs -ls /
jps 没进程 → 服务没起hdfs 命令找不到 → 环境变量Connection refused → 配置/端口Permission denied → 用户权限我可以直接帮你定位,请贴出:
jps 输出我可以一步一步带你修 ✅