在 Linux 上配置 HDFS(Hadoop 分布式文件系统) 时,出现配置错误非常常见。下面我按**“排查思路 + 常见错误 + 解决方案”**来系统说明,你可以对照排查。
hadoop version
echo $HADOOP_HOME
echo $JAVA_HOME
✅ 要求:
HADOOP_HOME 指向 Hadoop 安装目录JAVA_HOME 必须正确(Hadoop 强依赖)PATH 包含 $HADOOP_HOME/bin:$HADOOP_HOME/sbin如果报错:
command not found → 环境变量没配好JAVA_HOME is not set → 编辑 hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk
现象
start-dfs.sh
提示:
NameNode not formatted
或 NameNode 进程不存在
✅ 解决方法
hdfs namenode -format
⚠️ 注意:
HDFS 核心配置文件在:
$HADOOP_HOME/etc/hadoop/
重点检查以下文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
常见错误:
localhost 写错<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
</configuration>
✅ 目录必须存在并有权限:
mkdir -p /data/hadoop/namenode
mkdir -p /data/hadoop/datanode
chmod -R 755 /data/hadoop
现象
start-dfs.sh
提示:
localhost: Permission denied (publickey,password)
✅ 解决方法
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试:
ssh localhost
现象
java.net.BindException: Port in use
✅ 检查端口:
netstat -tunlp | grep 9000
✅ 解决:
core-site.xml 端口kill -9 PID
常见原因
dfs.datanode.data.dir 不存在✅ 重置 DataNode
rm -rf /data/hadoop/datanode/*
hdfs namenode -format
start-dfs.sh
cd $HADOOP_HOME/logs
重点看:
hadoop-*-namenode-*.loghadoop-*-datanode-*.logtail -500f hadoop-root-namenode-localhost.log
jps
✅ 正常至少看到:
NameNode
DataNode
SecondaryNameNode
测试 HDFS:
hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -put test.txt /test
如果你愿意,我可以直接给你一套 100%可用的 HDFS 伪分布式配置(适合学习)。
你可以直接贴出:
1️⃣ 报错日志(截图或文本)
2️⃣ core-site.xml / hdfs-site.xml 内容
3️⃣ jps 输出
4️⃣ 是 单机 / 伪分布式 / 完全分布式
我可以 精准定位是哪一行配置错了 ✅