下面从 安装前准备 → 核心配置文件 → 常见正确做法 → 排错思路 给你一个“能跑起来且不容易踩坑”的 Linux HDFS 配置说明(以 Hadoop 3.x 为例,单机/伪分布式为主,附带完全分布式要点)。
java -version
推荐 JDK 8 或 JDK 11(Hadoop 3.x 支持)ssh-keygen -t rsa
ssh-copy-id localhost
systemctl stop firewalld
systemctl disable firewalld
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
生效:
source ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_xxx
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
✅ 常见错误:
hadoop.tmp.dir 没配 → 重启后数据全丢<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
✅ 要点:
dfs.replication=1(单机)localhost
完全分布式时写 DataNode 主机名
hdfs namenode -format
⚠️ 重复格式化会导致 DataNode 无法启动
start-dfs.sh
jps
应看到:
Web UI:
http://localhost:9870
| 问题 | 原因 |
|---|---|
| DataNode 起不来 | clusterID 不一致 |
| NameNode 起不来 | 端口被占用 |
| 权限错误 | 用 root 跑 Hadoop |
| 无法访问 Web | 防火墙没关 |
| 文件写不进 | replication > 节点数 |
✅ 建议:
useradd hadoop
chown -R hadoop:hadoop /opt/hadoop
core-site.xml 写真实 IP / 主机名workers 写 DataNode✅ Java 对
✅ SSH 通
✅ 目录权限对
✅ 只格式化一次
✅ replication 合理
✅ 端口不冲突
如果你愿意,可以告诉我:
我可以帮你逐行检查你的配置文件。