下面分常见场景说明 Linux 上如何修改 HDFS 配置。如果你用的是 Hadoop 伪分布式 / 完全分布式,配置方式基本一致。
HDFS 的核心配置文件一般位于:
$HADOOP_HOME/etc/hadoop/
常见文件包括:
| 文件 | 说明 |
|---|---|
hdfs-site.xml |
HDFS 核心配置(最重要) |
core-site.xml |
全局配置(如 NameNode 地址) |
hadoop-env.sh |
Java 环境、JVM 参数 |
workers |
DataNode 节点列表(Hadoop 3) |
HADOOP_HOME如:/usr/local/hadoop
vim $HADOOP_HOME/etc/hadoop/core-site.xml
示例:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
✅ 修改后影响整个 HDFS 访问入口
vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
NameNode 数据存储目录
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
DataNode 数据存储目录
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
副本数(默认 3)
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
Web UI 端口(Hadoop 3)
<property>
<name>dfs.namenode.http-address</name>
<value>namenode:9870</value>
</property>
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
示例:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
export HADOOP_HEAPSIZE=2048
scp hdfs-site.xml core-site.xml worker1:/opt/hadoop/etc/hadoop/
hdfs namenode -format
⚠ 会清空 HDFS 数据,生产环境慎用
$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/start-dfs.sh
或单独重启:
hdfs --daemon stop namenode
hdfs --daemon start namenode
hdfs dfsadmin -report
http://namenode:9870http://namenode:50070| 问题 | 原因 |
|---|---|
| NameNode 起不来 | dfs.namenode.name.dir 权限不足 |
| DataNode 未注册 | 集群 ID 不一致 |
| 端口冲突 | 已占用 9000 / 9870 |
查看日志:
$HADOOP_HOME/logs/
你可以直接告诉我:
我可以给你精确配置文件示例。