温馨提示×

centos怎么扩容hdfs存储

小樊
44
2026-08-31 05:19:36
栏目: 云计算

CentOS 上扩容 HDFS 存储,通常不是“直接扩容磁盘”这么简单,而是 增加 DataNode 节点在现有节点上增加磁盘并让 HDFS 识别。下面按最常见的几种场景给你一个完整说明。


一、扩容 HDFS 的两种核心方式

✅ 方式一:横向扩容(推荐)

增加新的 DataNode 节点

这是 Hadoop 官方推荐的方式,适合生产环境。

✅ 方式二:纵向扩容

在已有 DataNode 上增加磁盘

如果服务器还能加盘,也可以这样操作。


二、准备条件(通用)

1️⃣ 确保新节点基础环境一致

在新节点(CentOS)上执行:

# 1. 安装 Java
java -version

# 2. 配置主机名
hostnamectl set-hostname hadoop-datanode3

# 3. 配置 /etc/hosts
192.168.1.10  hadoop-namenode
192.168.1.11  hadoop-datanode1
192.168.1.12  hadoop-datanode2
192.168.1.13  hadoop-datanode3

2️⃣ 配置 SSH 免密登录

NameNode 上:

ssh-copy-id hadoop-datanode3

三、方式一:新增 DataNode(最常见)

1️⃣ 安装 Hadoop(推荐软链接方式)

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

2️⃣ 修改配置文件

(1)hdfs-site.xml

确保 DataNode 数据目录存在:

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

(2)workers(旧版本是 slaves)

NameNode 上:

vi $HADOOP_HOME/etc/hadoop/workers

添加:

hadoop-datanode1
hadoop-datanode2
hadoop-datanode3

3️⃣ 启动 DataNode

在新节点上执行:

hdfs --daemon start datanode

或老版本:

hadoop-daemon.sh start datanode

4️⃣ 验证是否扩容成功

hdfs dfsadmin -report

你应该能看到:

  • Live datanodes 数量增加
  • Configured Capacity 变大

四、方式二:已有 DataNode 增加磁盘

1️⃣ 新磁盘挂载(示例)

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

加到 /etc/fstab 防止重启丢失。


2️⃣ 修改 hdfs-site.xml

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

⚠️ 多个目录用 逗号分隔


3️⃣ 重启 DataNode

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

五、数据均衡(扩容后强烈建议)

扩容后 HDFS 数据不会自动均衡,需要手动执行:

hdfs balancer

可选参数:

hdfs balancer -threshold 10

六、常见问题排查

❌ 新节点没出现

  • 防火墙未关闭
  • 时间不同步(一定要做 NTP)
  • NameNode 无法解析 hostname

❌ 磁盘容量没增加

  • dfs.datanode.data.dir 没配置新目录
  • 目录权限不对
chown -R hdfs:hadoop /data2

七、扩容总结(推荐流程)

生产环境

新增 DataNode → 加入集群 → 执行 balancer

测试环境

加磁盘 → 修改配置 → 重启 DataNode

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

  • Hadoop 版本(2.x / 3.x)
  • 是否 HA
  • 当前是 VM / 物理机
  • 是否使用 Cloudera / Ambari

我可以给你 更精确的配置示例

0