温馨提示×

Linux HDFS配置如何修改

小樊
36
2026-07-14 14:58:59
栏目: 智能运维

下面分常见场景说明 Linux 上如何修改 HDFS 配置。如果你用的是 Hadoop 伪分布式 / 完全分布式,配置方式基本一致。


一、HDFS 配置文件位置

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


二、修改 HDFS 配置(常用)

1️⃣ 修改 NameNode 地址(core-site.xml)

vim $HADOOP_HOME/etc/hadoop/core-site.xml

示例:

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://namenode:9000</value>
  </property>
</configuration>

✅ 修改后影响整个 HDFS 访问入口


2️⃣ 修改 HDFS 参数(hdfs-site.xml)

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>

3️⃣ 修改 JVM 参数(hadoop-env.sh)

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

示例:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
export HADOOP_HEAPSIZE=2048

三、修改后必须执行的操作

✅ 1. 同步配置(集群环境)

scp hdfs-site.xml core-site.xml worker1:/opt/hadoop/etc/hadoop/

✅ 2. 格式化 NameNode(⚠ 仅首次或清空数据)

hdfs namenode -format

会清空 HDFS 数据,生产环境慎用


✅ 3. 重启 HDFS 服务

$HADOOP_HOME/sbin/stop-dfs.sh
$HADOOP_HOME/sbin/start-dfs.sh

或单独重启:

hdfs --daemon stop namenode
hdfs --daemon start namenode

四、验证配置是否生效

1️⃣ 查看 HDFS 状态

hdfs dfsadmin -report

2️⃣ 访问 Web UI

  • Hadoop 3:http://namenode:9870
  • Hadoop 2:http://namenode:50070

五、常见错误排查

问题 原因
NameNode 起不来 dfs.namenode.name.dir 权限不足
DataNode 未注册 集群 ID 不一致
端口冲突 已占用 9000 / 9870

查看日志:

$HADOOP_HOME/logs/

六、如果你有具体需求

你可以直接告诉我:

  • ✅ Hadoop 版本(2.x / 3.x)
  • ✅ 单机 / 集群
  • ✅ 想改哪一项(副本数、端口、目录、权限等)

我可以给你精确配置文件示例

0