温馨提示×

linux hdfs如何扩容集群

小樊
45
2026-09-22 20:27:59
栏目: 智能运维

在 Linux 环境下对 HDFS 集群进行扩容,通常分为 横向扩容(加 DataNode) 和 纵向扩容(加磁盘/调整配置) 两种方式。下面按常见生产场景说明。


一、HDFS 扩容常见方式

方式 1:新增 DataNode(最常用)

适用于:集群存储或计算资源不足。

方式 2:现有 DataNode 增加磁盘

适用于:机器数量不变,但磁盘容量不足。

方式 3:调整副本数 / 块大小(非真正扩容)

只是提高利用率,不算真正扩容。


二、新增 DataNode 扩容步骤(推荐)

1. 准备新节点

  • 安装相同版本的 JDK
  • 安装相同版本的 Hadoop
  • 配置主机名、IP、hosts
  • 配置 SSH 免密登录(NameNode → 新 DataNode)
# 示例
192.168.1.10 namenode
192.168.1.11 datanode1
192.168.1.12 datanode2
192.168.1.13 newdatanode

2. 配置 Hadoop 环境

拷贝 NameNode 的 Hadoop 配置到新节点:

scp -r $HADOOP_HOME newdatanode:/opt/
scp /etc/hosts newdatanode:/etc/hosts

确保以下配置文件一致:

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml
  • yarn-site.xml

重点关注:

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

3. 格式化并启动 DataNode

⚠️ 不要格式化 NameNode

# 在新节点执行
hdfs --daemon start datanode

或老版本:

hadoop-daemon.sh start datanode

4. 将新节点加入集群

方法一:直接启动(默认)

只要 workers 文件包含新节点即可。

# workers 文件
datanode1
datanode2
newdatanode

方法二:白名单方式(推荐生产)

在 hdfs-site.xml 中配置:

<property>
  <name>dfs.hosts</name>
  <value>/etc/hadoop/datanodes.include</value>
</property>
# datanodes.include
datanode1
datanode2
newdatanode

然后刷新节点:

hdfs dfsadmin -refreshNodes

5. 验证扩容

hdfs dfsadmin -report

看到新 DataNode 且 Capacity 增加即成功。


三、现有 DataNode 增加磁盘

1. 挂载新磁盘

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

2. 修改配置

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

3. 重启 DataNode

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

四、数据均衡(非常重要)

新节点加入后,数据不会自动均匀分布。

执行 Balancer

hdfs balancer \
  -threshold 10

参数说明:

  • threshold:节点使用率差异阈值(%)

后台运行:

nohup hdfs balancer -threshold 10 > balancer.log 2>&1 &

五、常见问题

1. 新节点未显示

  • 检查防火墙
  • 检查 fs.defaultFS
  • 查看 DataNode 日志
tail -f $HADOOP_LOG_DIR/hadoop-*-datanode-*.log

2. 磁盘不均衡

  • 执行 balancer
  • 或使用 diskbalancer(HDFS 3.x)
hdfs diskbalancer -plan datanode1
hdfs diskbalancer -execute plan.json

六、总结

扩容方式 是否推荐 说明
加 DataNode ✅ 最安全、最标准
加磁盘 ✅ 成本更低
改副本数 ❌ 非真正扩容

如果你能提供:

  • Hadoop 版本
  • 是否 HA
  • 当前节点数量

我可以给你 更精确的扩容方案。

0 踩