温馨提示×

linux hdfs如何扩容

小樊
43
2026-10-07 11:00:08
栏目: 智能运维

在 Linux 环境下对 HDFS(Hadoop 分布式文件系统)进行扩容,通常分为 横向扩容(加 DataNode) 和 纵向扩容(加磁盘) 两种方式。下面按常见场景详细说明。


一、横向扩容(新增 DataNode 节点)

这是 最常用、最推荐 的 HDFS 扩容方式。

1. 新节点准备

在新增的 Linux 服务器上:

  • 安装与集群一致的 JDK
  • 安装与集群一致的 Hadoop 版本
  • 配置主机名和 /etc/hosts
  • 配置 SSH 免密登录(NameNode → 新 DataNode)
ssh-keygen
ssh-copy-id datanode-new

2. 同步 Hadoop 配置

从现有节点拷贝配置:

scp -r $HADOOP_HOME datanode-new:/path/
scp /etc/hosts datanode-new:/etc/hosts

确保以下配置一致:

  • core-site.xml
  • hdfs-site.xml
  • workers(或 slaves)

3. 修改 workers 文件(NameNode 上)

vi $HADOOP_HOME/etc/hadoop/workers

添加新节点:

datanode-new

4. 启动 DataNode

在新节点执行:

hdfs --daemon start datanode

或(老版本):

hadoop-daemon.sh start datanode

5. 验证扩容

hdfs dfsadmin -report

你会看到:

  • Live datanodes 数量 +1
  • Configured Capacity 增加

✅ 无需重启 NameNode,HDFS 自动识别


二、纵向扩容(DataNode 增加磁盘)

适用于单节点加硬盘。

1. 挂载新磁盘

mkfs.ext4 /dev/sdb
mkdir /data2
mount /dev/sdb /data2

写入 /etc/fstab 持久化。


2. 修改 hdfs-site.xml

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

多个目录用逗号分隔


3. 重启 DataNode

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

4. 验证

hdfs dfsadmin -report

三、HDFS 容量相关说明

1. 副本影响可用容量

dfs.replication = 3

实际可用 = 总容量 / 3


2. 磁盘使用阈值

dfs.datanode.du.reserved

保留空间,防止磁盘写满。


四、常见问题

Q1:扩容后容量没变化?

  • DataNode 未启动
  • dfs.datanode.data.dir 配置错误
  • 新磁盘未挂载成功

Q2:是否能在线扩容?

✅ 可以

  • 加 DataNode:完全在线
  • 加磁盘:重启单个 DataNode 即可

Q3:NameNode 需要扩容吗?

  • NameNode 不存数据
  • 只存元数据
  • 数据节点越多,NameNode 内存需求越大

五、总结

扩容方式 是否重启 推荐度
新增 DataNode 否 ⭐⭐⭐⭐⭐
DataNode 加磁盘 单节点重启 ⭐⭐⭐⭐
升级 NameNode 极少 ⭐

如果你能告诉我:

  • Hadoop 版本
  • 是 CDH / HDP / 原生 Hadoop
  • 当前节点数和磁盘情况

我可以给你 更精确的扩容步骤或脚本。

0 踩