温馨提示×

centos怎么扩容hdfs

小樊
37
2026-08-20 05:38:31
栏目: 智能运维

在 CentOS 上扩容 HDFS(Hadoop Distributed File System),一般分为 横向扩容(加节点)纵向扩容(加磁盘) 两种场景。下面按常见情况给你一个完整、可操作的说明。


一、扩容前准备

1️⃣ 确认当前 HDFS 状态

hdfs dfsadmin -report

查看:

  • 当前 DataNode 数量
  • 总容量 / 已用 / 剩余

2️⃣ 确认 Hadoop 版本

hadoop version

不同版本(Hadoop 2.x / 3.x)配置略有差异。


二、方式一:横向扩容(新增 DataNode 节点)✅ 最常见

1️⃣ 新节点准备(CentOS)

① 安装 Java

yum install -y java-1.8.0-openjdk

② 创建 hadoop 用户

useradd hadoop
passwd hadoop

③ 配置主机名 & hosts

hostnamectl set-hostname hadoop-datanode3
vi /etc/hosts
192.168.1.10  namenode
192.168.1.11  datanode1
192.168.1.12  datanode2
192.168.1.13  datanode3

④ 配置 SSH 免密(从 NameNode 到新节点)

ssh-keygen
ssh-copy-id hadoop@datanode3

2️⃣ 安装 Hadoop(与集群版本一致)

tar -zxvf hadoop-3.x.x.tar.gz -C /opt/
chown -R hadoop:hadoop /opt/hadoop-3.x.x

3️⃣ 配置 Hadoop(关键)

core-site.xml

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

hdfs-site.xml

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

workers(Hadoop 3.x)

vi $HADOOP_HOME/etc/hadoop/workers

添加:

datanode1
datanode2
datanode3

4️⃣ 启动 DataNode

su - hadoop
$HADOOP_HOME/sbin/hadoop-daemon.sh start datanode

或(推荐):

$HADOOP_HOME/bin/hdfs --daemon start datanode

5️⃣ 验证扩容是否成功

hdfs dfsadmin -report

你会看到:

  • DataNode 数量 +1
  • 总容量增加

HDFS 会自动识别新节点,无需重启 NameNode


三、方式二:纵向扩容(DataNode 增加磁盘)

1️⃣ 新磁盘挂载(CentOS)

lsblk
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mkdir /data2
mount /dev/sdb1 /data2

永久挂载:

vi /etc/fstab
/dev/sdb1  /data2  ext4  defaults  0 0

2️⃣ 修改 HDFS 配置

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

4️⃣ 验证

hdfs dfsadmin -report

✅ 容量增加,无需重新格式化


四、HDFS 扩容后常见问题

❓ 新节点没有数据?

HDFS 不会自动迁移旧数据,只会 新写入的数据 使用新节点。

如需平衡数据:

hdfs balancer

或指定带宽:

hdfs balancer -threshold 10

❓ 是否需要重启 NameNode?

❌ 不需要
✅ DataNode 动态注册


五、扩容建议(生产环境)

  • 新节点配置尽量与老节点一致(CPU / 内存 / 磁盘)
  • 使用 多个数据目录 提升 IO
  • 扩容后执行 balancer
  • 监控 NameNode 内存(节点过多时注意)

六、总结

场景 方法
加机器 新 DataNode 加入集群
加磁盘 修改 dfs.datanode.data.dir
是否重启
是否格式化

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

  • Hadoop 版本
  • 是否 HA(高可用)
  • 当前节点数 & 磁盘情况

我可以给你 针对你集群的精确扩容方案

0