温馨提示×

linux hdfs怎么扩容集群

小樊
41
2026-09-07 14:50:51
栏目: 智能运维

在 Linux 环境下对 HDFS 集群扩容,通常分为 增加 DataNode(数据节点)调整 NameNode 容量/配置 两类。最常见、最常见的是 横向扩容:新增 DataNode 节点。下面按实战步骤说明。


一、HDFS 扩容常见方式

1️⃣ 横向扩容(推荐)

  • 新增 DataNode 机器
  • 不影响现有集群
  • 无需重启 NameNode

2️⃣ 纵向扩容

  • 给现有 DataNode 加磁盘
  • 修改 dfs.datanode.data.dir

二、新增 DataNode 扩容步骤(最常用)

前提条件

  • 新机器已安装 JDK
  • 与集群 网络互通
  • 主机名、hosts 配置正确
  • 时间同步(NTP)

步骤 1:配置 hosts

所有节点(包括新节点):

vi /etc/hosts
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
192.168.1.13 datanode3   # 新节点

步骤 2:创建 hadoop 用户(可选但推荐)

useradd hadoop
passwd hadoop

步骤 3:配置 SSH 免密

在 NameNode 上:

ssh-copy-id datanode3

步骤 4:拷贝 Hadoop 安装目录

从已有 DataNode 拷贝:

scp -r /opt/hadoop datanode3:/opt/

或新节点单独安装相同版本 Hadoop。


步骤 5:修改配置

新 DataNode 上:

hdfs-site.xml

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

core-site.xml

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

步骤 6:格式化(⚠️不要格式化 NameNode)

新 DataNode 不需要格式化


步骤 7:启动 DataNode

hdfs --daemon start datanode

或:

start-dfs.sh

步骤 8:检查节点是否加入

hdfs dfsadmin -report

应能看到新 DataNode。


三、让新节点自动承载数据(可选)

手动触发数据均衡

hdfs balancer

或限制带宽:

hdfs dfsadmin -setBalancerBandwidth 104857600

四、给已有 DataNode 加磁盘(纵向扩容)

1️⃣ 挂载新磁盘

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

2️⃣ 修改配置

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

3️⃣ 重启 DataNode

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

五、NameNode 是否需要扩容?

一般 不需要,除非:

  • 元数据量巨大(几亿文件)
  • 可升级为 HA + Federation

六、常见坑

❌ 新节点 Hadoop 版本不一致
❌ 防火墙未关
❌ 时间不同步
dfs.datanode.data.dir 权限错误


七、总结

✅ HDFS 扩容 = 加 DataNode
✅ 不需停集群
✅ 加完跑 balancer

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

  • Hadoop 版本(2.x / 3.x)
  • 是否 HA
  • 物理机 / 云服务器

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

0