温馨提示×

CentOS HDFS集群扩容方案

小樊
37
2025-12-29 14:07:40
栏目: 智能运维

一 扩容目标与准备

  • 明确目标:本次为在 CentOS 上扩展 HDFS 的存储与计算能力,优先通过新增 DataNode 节点实现横向扩容;如暂不新增机器,可先在现有节点上增加磁盘作为替代方案(见文末补充)。
  • 资源与网络:确认新增节点具备充足的 CPU、内存、磁盘,并与现有集群网络互通;在 /etc/hosts 或 DNS 中完善主机名解析;建议配置 SSH 免密 以便批量启停服务。
  • 软件与配置基线:新节点安装与集群版本一致的 JDKHadoop,同步 $HADOOP_HOME/etc/hadoop 下的核心配置(至少包含 core-site.xml、hdfs-site.xml);如使用 HDFS 白名单/黑名单,提前准备名单文件。
  • 时间同步与安全:全集群启用 NTP 时间同步;按需放通 端口(如 NameNode RPC 8020、DataNode 数据传输、Web UI 9870 等),并关闭不必要的防火墙规则。
  • 维护窗口:选择业务低峰期执行,提前做好 备份变更记录,并准备回滚预案。

二 标准扩容步骤

  1. 配置与分发
    • 将新节点加入 workers(或旧版 slaves)文件,用于批量启动;如启用白名单,将新节点写入 dfs.hosts
    • 同步 Hadoop 配置至新节点(保持目录结构与版本一致)。
  2. 启动服务
    • 在新节点启动 DataNode:执行 $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode;如使用 YARN,可同时启动 NodeManager$HADOOP_HOME/sbin/yarn-daemon.sh start nodemanager
  3. 注册与验证
    • NameNode 执行 hdfs dfsadmin -report,确认新节点出现在 Live datanodes;通过 http://:9870 查看节点列表与容量。
  4. 数据再均衡
    • 启动均衡器:hdfs balancer -threshold 10(阈值可按集群差异调整为 5–10);如带宽受限,可适度提高 dfs.balance.bandwidthPerSec,避免影响线上业务。
  5. 运行观察
    • 观察 NameNode/DataNode 日志、Web UI 指标与集群 吞吐/延迟,确认无异常后再扩大业务流量。

三 配置与容量调优要点

  • 白名单/黑名单:在 hdfs-site.xml 中配置 dfs.hosts(白名单)与 dfs.hosts.exclude(黑名单);首次变更可能需重启相关服务,后续通过 hdfs dfsadmin -refreshNodes 动态生效。
  • 主机名校验:如存在 IP 与主机名不一致 的场景,可设置 dfs.namenode.datanode.registration.ip-hostname-check=false,避免节点注册失败。
  • 传输并发:根据网络与磁盘能力,适当提升 dfs.datanode.max.transfer.threads,加速数据复制与均衡过程。
  • 均衡阈值与带宽:hdfs balancer -threshold 控制平衡触发条件(值越小越均衡但耗时更长);通过 dfs.balance.bandwidthPerSec 限制再均衡占用带宽,减少对业务的影响。

四 验证与回滚

  • 验证清单
    • 节点状态:hdfs dfsadmin -report 检查 容量、使用率、块报告Decommission 状态
    • Web 界面:NameNode 9870 与 ResourceManager 8088 页面查看节点健康与负载;
    • 业务验证:提交示例作业(如 hadoop jar ... pi 5 100)验证读写与计算链路正常。
  • 常见问题与回滚
    • 节点未注册:核对 /etc/hostsworkers、白名单与 SSH;必要时执行 hdfs dfsadmin -refreshNodes
    • 均衡过慢或影响业务:调高 dfs.balance.bandwidthPerSec 或提高 -threshold
    • 异常情况:立即停止均衡,回滚配置并重启受影响服务,必要时从 workers 移除问题节点并再次 refreshNodes

五 补充 不新增机器时的容量扩展

  • 方式:在现有 DataNode 上新增磁盘或扩展现有分区,并将新目录加入 dfs.datanode.data.dir;保持目录权限为 700
  • 操作建议:在停机窗口(或支持热插拔的文件系统场景)完成磁盘变更;必要时重启 DataNode 使新目录生效;完成后运行 Balancer 重新分布数据。
  • 注意:避免在新盘上执行 NameNode 格式化;仅在新增 DataNode 时才需要格式化该节点的本地数据目录,切勿误在 NameNode 上执行格式化操作。

0