温馨提示×

CentOS HDFS配置如何扩容

小樊
41
2026-08-31 05:07:36
栏目: 智能运维

CentOS 上扩容 HDFS,一般不是“改一个配置就能变大”,而是 增加存储容量或节点。下面按最常见场景给你一个完整、可操作的扩容指南。


一、HDFS 扩容的几种方式

扩容方式 适用场景
✅ 增加 DataNode 节点 最推荐、最标准
✅ 给现有节点加磁盘 单机磁盘不够
⚠ 修改 dfs.datanode.data.dir 新磁盘映射
⚠ 调整副本数 不增加容量,只影响冗余

二、扩容前准备(CentOS)

1️⃣ 新节点基础环境

# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 主机名
hostnamectl set-hostname datanode3

# 配置 /etc/hosts
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
192.168.1.13 datanode3

2️⃣ 安装 Java & Hadoop

yum install -y java-1.8.0-openjdk

Hadoop 版本必须与 NameNode 完全一致


三、扩容方式一:新增 DataNode(推荐 ✅)

1️⃣ 配置 hdfs-site.xml

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/data/hdfs/datanode</value>
</property>

2️⃣ 配置 core-site.xml

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

3️⃣ 配置 slaves / workers

# Hadoop 2.x
vim etc/hadoop/slaves

# Hadoop 3.x
vim etc/hadoop/workers

增加:

datanode3

4️⃣ 启动 DataNode

hdfs --daemon start datanode

✅ 在 NameNode 上验证:

hdfs dfsadmin -report

你会看到 新增节点已加入


四、扩容方式二:给现有节点加磁盘

1️⃣ 新磁盘挂载

mkfs.xfs /dev/sdb
mkdir -p /data2/hdfs/datanode
mount /dev/sdb /data2/hdfs/datanode

设置开机自动挂载 /etc/fstab


2️⃣ 修改 hdfs-site.xml

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/data/hdfs/datanode,/data2/hdfs/datanode</value>
</property>

✅ 多个目录用 逗号分隔


3️⃣ 重启 DataNode

hdfs --daemon stop datanode
hdfs --daemon start datanode

五、HDFS 自动均衡(非常重要 ⚠)

扩容后数据不会自动迁移,需要 手动触发均衡

hdfs balancer

可选参数

hdfs balancer \
  -threshold 10 \
  -policy datanode
  • threshold:节点间磁盘使用率差值(%)
  • 建议值:5~10

六、验证扩容是否成功

hdfs dfsadmin -report

重点看:

  • Live datanodes 数量
  • Configured Capacity
  • DFS Used %

七、常见错误 & 排查

❌ DataNode 无法加入

# 检查 UUID 冲突
cat /data/hdfs/datanode/current/VERSION

❌ 磁盘权限问题

chown -R hdfs:hdfs /data2/hdfs
chmod 700 /data2/hdfs

八、你当前环境建议

如果你愿意,可以告诉我:

  1. ✅ Hadoop 版本(2.x / 3.x)
  2. ✅ 是否 HA
  3. ✅ 是加节点还是加磁盘
  4. ✅ CentOS 版本

我可以 直接给你一套完全贴合你环境的扩容方案

0