在 CentOS 上扩容 HDFS 存储,通常不是“直接扩容磁盘”这么简单,而是 增加 DataNode 节点 或 在现有节点上增加磁盘并让 HDFS 识别。下面按最常见的几种场景给你一个完整说明。
增加新的 DataNode 节点
这是 Hadoop 官方推荐的方式,适合生产环境。
在已有 DataNode 上增加磁盘
如果服务器还能加盘,也可以这样操作。
在新节点(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
在 NameNode 上:
ssh-copy-id hadoop-datanode3
scp -r /opt/hadoop hadoop-datanode3:/opt/
hdfs-site.xml确保 DataNode 数据目录存在:
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hdfs/data</value>
</property>
workers(旧版本是 slaves)在 NameNode 上:
vi $HADOOP_HOME/etc/hadoop/workers
添加:
hadoop-datanode1
hadoop-datanode2
hadoop-datanode3
在新节点上执行:
hdfs --daemon start datanode
或老版本:
hadoop-daemon.sh start datanode
hdfs dfsadmin -report
你应该能看到:
lsblk
mkfs.ext4 /dev/sdb
mkdir /data2
mount /dev/sdb /data2
加到 /etc/fstab 防止重启丢失。
hdfs-site.xml<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hdfs/data,/data2/hadoop/hdfs/data</value>
</property>
⚠️ 多个目录用 逗号分隔
hdfs --daemon stop datanode
hdfs --daemon start datanode
扩容后 HDFS 数据不会自动均衡,需要手动执行:
hdfs balancer
可选参数:
hdfs balancer -threshold 10
dfs.datanode.data.dir 没配置新目录chown -R hdfs:hadoop /data2
✅ 生产环境
新增 DataNode → 加入集群 → 执行 balancer
✅ 测试环境
加磁盘 → 修改配置 → 重启 DataNode
如果你愿意,可以告诉我:
我可以给你 更精确的配置示例。