温馨提示×

HDFS在CentOS如何扩容

小樊
37
2026-08-05 01:16:47
栏目: 智能运维

CentOS 上对 HDFS 进行扩容,通常流程是:增加 DataNode 节点 / 增加磁盘 → 让 HDFS 识别新存储 → 必要时重新平衡数据。下面按常见场景逐步说明。


一、确认当前 HDFS 状态

在扩容前,先确认现有集群状态。

# 查看 HDFS 总容量和使用情况
hdfs dfsadmin -report

重点看:

  • Configured Capacity
  • DFS Used
  • Live datanodes 数量

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

1️⃣ 在新节点上安装 Hadoop

  • OS:CentOS(与集群版本一致)
  • Java:与集群一致(建议 java -version 确认)
  • Hadoop:版本、配置与现有集群一致
# 创建 hadoop 用户
useradd hadoop

2️⃣ 同步 Hadoop 配置

从现有 NameNode 拷贝配置:

scp -r $HADOOP_HOME newnode:/opt/hadoop

重点配置文件:

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml
  • workers(或 slaves,视 Hadoop 版本)

⚠️ 不要删除原节点配置


3️⃣ 配置主机名和 hosts

在所有节点上:

vi /etc/hosts

示例:

192.168.1.10  master
192.168.1.11  node1
192.168.1.12  newnode

并确保:

hostname

与 hosts 中一致。


4️⃣ 配置 SSH 免密(如需要)

如果 NameNode 要管理新节点:

ssh-copy-id newnode

5️⃣ 将新节点加入 workers

NameNode 修改:

vi $HADOOP_HOME/etc/hadoop/workers

添加:

newnode

6️⃣ 启动 DataNode

在新节点执行:

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

或直接:

hdfs --daemon start datanode

验证:

hdfs dfsadmin -report

✅ 新节点应出现在 Live datanodes 中,容量自动增加。


三、扩容方式二:给现有 DataNode 增加磁盘(不新增节点)

1️⃣ 添加磁盘并挂载

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

写入 /etc/fstab 实现开机自动挂载。


2️⃣ 修改 HDFS 数据目录

编辑 hdfs-site.xml

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

多个目录用逗号分隔


3️⃣ 创建目录并授权

mkdir -p /data2/dfs/dn
chown -R hdfs:hadoop /data2/dfs/dn
chmod 700 /data2/dfs/dn

4️⃣ 重启 DataNode

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

验证:

hdfs dfsadmin -report

四、HDFS 数据再平衡(强烈建议)

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

hdfs balancer

常用参数:

hdfs balancer -threshold 10
  • 默认 10%
  • 表示各节点磁盘使用率差异不超过 10%

✅ 生产环境建议执行,避免热点节点。


五、常见问题排查

1️⃣ 新节点未显示

  • 防火墙未关闭
  • 时间不同步(建议 NTP)
  • NameNode 和 DataNode Hadoop 版本不一致

2️⃣ 磁盘已加但容量未变

  • dfs.datanode.data.dir 未修改
  • 目录权限不对
  • DataNode 未重启

3️⃣ 安全模式导致无法写入

hdfs dfsadmin -safemode get
hdfs dfsadmin -safemode leave

六、总结流程(速查)

新增节点

  1. 装 Hadoop
  2. 同步配置
  3. 加入 workers
  4. 启动 DataNode
  5. 执行 balancer

新增磁盘

  1. 挂载磁盘
  2. 修改 dfs.datanode.data.dir
  3. 重启 DataNode
  4. 执行 balancer

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

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

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

0