场景目标
按批次完成目标 DataNode 的正式退役,证明副本迁移和机架放置满足策略,核心路径无新增缺失或损坏块,任务与容量指标保持在批准阈值内,再停止对应服务。
大数据运维 · 高级
以 HDFS 正式退役流程迁移 DataNode 副本,核对容量、机架与业务负载后再停止服务并交接资产。
按批次完成目标 DataNode 的正式退役,证明副本迁移和机架放置满足策略,核心路径无新增缺失或损坏块,任务与容量指标保持在批准阈值内,再停止对应服务。
参考 Apache Hadoop 3.4.2 的 HDFS 管理命令,实际集群版本、发行版、HA 拓扑及 host provider 必须预先核对。需要具备 HDFS 管理权限的操作账号、配置仓库审阅权及目标主机服务管理权限;Kerberos 环境须使用有效短期票据。剩余节点须能容纳退役数据、副本策略和业务增长,并满足机架放置。安排 180 分钟准备与核验窗口;块迁移可能持续数小时或数天,完成状态和业务阈值优先于估算时间。需保留原配置、目标数据目录及节点重新入服路径。
由 NameNode 调度退役,块数据在 DataNode 之间复制;配置分发、业务读写和健康观测各自独立,复制完成后才进入精确停服。
点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。
确认目标存储身份、机架余量、同机计算服务及停止条件;退役批准不包含擦盘授权。
审批绑定精确节点集合、配置差异和分发目标。
先核对各 NameNode 配置一致,再由获准身份按 HA 约定刷新节点配置。
退役中不是已完成;只有管理状态及块健康验收通过才能停服。
控制关系表达目标选择,不表示块数据经过 NameNode。
示意从可用副本向剩余节点复制;实际来源和链路由集群调度。
退役状态与复制队列进入已有采集链路,和管理查询交叉核对。
观察剩余存储、网络和业务周期,超出预算停止扩大批次。
不能用暂时离线或进入退役中代替 Decommissioned;存在丢块、放置约束不满足或异常安全模式时停止。
HDFS 退役不会自动排空 NodeManager 和同机业务;保留数据目录、配置与日志,磁盘清理需独立审批。
恢复配置和服务后还需等待块报告、重新接纳与副本健康检查,不能承诺瞬时回退。
适用于 HDFS 集群中计划移除单台或小批量 DataNode。由 NameNode 管理退役和副本重建,Ansible 固化配置分发,Prometheus 观察复制、容量与业务影响;监控采集需复用已验证的 Hadoop 指标接入。
本文是待实施验证的操作流程,不处理正在丢块的紧急恢复,也不将退役等同于短期维护模式。无法容纳目标副本、机架放置约束不满足、存在不可读数据或处于异常安全模式时不得继续。HDFS 退役不自动排空同机的 YARN NodeManager、计算服务或本地业务目录,需要分别确认。
目标节点最终进入 Decommissioned,关键路径数据可读、缺失块与损坏块无新增,副本放置及剩余容量符合策略;关联计算任务已迁移,停止服务后继续观察无退化。只有正式退役完成和独立的数据保留审批完成后,才可进入后续资产清理。
列出拟退役主机名、存储 ID、机架和承载服务,先从一台非关键节点开始。使用已配置认证的管理客户端查询容量与安全模式,并在批准的核心目录执行只读 fsck,记录异常作为基线。大型集群避免无边界扫描整个命名空间,先评估 NameNode 查询负载;示例目录需替换为实际获准路径。
hdfs dfsadmin -report
hdfs dfsadmin -safemode get
hdfs fsck /data/approved-sample节点身份和机架与资产记录一致,关键目录可读,缺失块、损坏块及低冗余块均有基线。若已存在不能解释的数据异常或安全模式状态异常,工单被明确暂停而不是继续修改退役配置。
只读检查不更改 HDFS 数据。若扫描影响 NameNode 响应,停止本次查询并缩小目录范围,保留已有输出;如果基线异常则移交数据恢复处理,保持目标 DataNode 继续服务并暂停退役。
按目标节点实际数据量、复制策略、纠删码策略和持续增长量核算剩余空间,分别检查每个机架与存储类型,不能只比较全局空闲总量。确认配置采用传统 include/exclude 文件还是 JSON host provider,读取路径而不修改。同步收集 NodeManager 和同机业务清单,制定各自的排空计划与观察阈值。
hdfs getconf -confKey dfs.namenode.hosts.provider.classname
hdfs getconf -confKey dfs.hosts
hdfs getconf -confKey dfs.hosts.exclude容量表证明剩余节点可满足数据放置及安全余量,host provider 与配置路径已核对。每个同机服务均有负责人和退出顺序,复制带宽、磁盘水位及核心作业时延的暂停阈值可直接用于判断。
核算不足时取消本批退役,先扩容或调整经过审批的批次范围;保持现有副本策略不变。配置查询若返回默认或缺失项,应核对实际生效配置,不能临时切换 provider 来绕过不明确的现状。
依据已确认的 provider 编写退役清单:传统配置使用排除文件,组合式配置按官方 JSON 状态表达。备份当前版本,使用 Ansible 限定到应接收配置的 NameNode 主机,并先审阅差异、路径、属主和权限。HA 环境确认相关 NameNode 的配置一致;本步骤只交付配置,不同时停止 DataNode 或删除其数据目录。
差异仅包含批准的目标节点,所有相关 NameNode 收到相同版本且权限正确;目标 DataNode 仍在线并能提供数据。审阅记录能对应具体配置文件、哈希、分发结果和本次退役节点集合。
如果分发不完整或清单误匹配,恢复各 NameNode 上保存的原配置,核对版本一致后暂停。此时尚未触发刷新,应保持数据节点运行;不要把不一致配置留给后续自动化任务再次加载。
由 HDFS 管理账号在变更窗口按集群 HA 约定执行节点配置刷新,使 NameNode 读取已审阅的退役清单。检查目标节点进入 Decommission In Progress,并确认复制工作开始调度。每一批次只处理批准数量,记录刷新时间与负责人;状态不变时先检查配置加载和节点身份,不反复添加主机别名或尝试强制停止节点。
目标节点进入预期退役中状态,非目标节点继续正常服务,NameNode 日志没有配置解析错误。副本迁移可以从管理状态和指标相互印证,刷新动作与实际配置版本在工单中一一对应。
如误触发或指标迅速越过阈值,恢复该 provider 下目标节点的在服配置并执行受控刷新,观察节点重新接纳状态。重新入服并非瞬时完成,需要继续确认块报告、业务负载和复制队列恢复。
持续观察复制队列、缺失块、磁盘剩余量、网络吞吐和核心作业时延,并以原基线区分迁移负载与已有问题。退役持续时间受块数量、带宽和放置条件影响,超时先定位受阻块及目标机架容量。需要调整复制并发或带宽时单独审阅、分次试验,不能为赶窗口降低副本数或跳过块健康检查。
迁移有持续进展,剩余容量和关键业务指标未超过阈值,没有新增缺失或损坏块。被阻塞的块能够对应到明确原因和处理负责人,任何限流参数变化均记录前后值和观察结果。
业务受影响时先停止扩大批次,恢复本次调整的并发或带宽设置,并评估将目标节点重新入服。若出现数据不可读,立即升级为数据事件保留节点和日志,不能通过停止告警或删块消除异常表象。
只有 NameNode 明确显示目标节点已 Decommissioned,且关键路径块健康和读测试再次通过后,才进入停服阶段。确认同机 NodeManager 任务与其他服务已独立排空,按资产清单停止精确目标的 DataNode 服务。保留数据目录、配置和日志至约定保留期,记录硬件与服务归属;正式退役完成不自动授权擦除磁盘。
管理端记录最终退役完成状态,停止服务前后关键数据读取成功,目标节点之外没有新增离线节点。计算任务已迁移,数据目录仍在,服务停止记录与主机身份以及审批批次能够相互核验。
停服后发现关联服务遗漏或数据访问退化时,先恢复精确目标服务,再按既定流程撤销退役配置并刷新。保留原数据目录有助于重新入服,但必须等待块报告和副本健康确认后才能视为恢复。
在约定业务观察窗口持续核对存储余量、放置约束、缺失块和作业成功率,覆盖至少一个代表性作业周期。更新资产、监控目标及配置仓库中的节点状态,避免已退役节点被自动重新纳入管理。归档配置版本、状态证据和未完成事项;后续复用或报废磁盘作为单独的数据保留与清理流程,由资产负责人承接。
观察期内数据健康无新增异常,剩余容量增长符合规划,关键作业成功率未退化。资产和配置记录一致,值班人员知道数据保留期限、重新入服条件及下一批次是否具备实施条件。
观察未通过时暂停后续退役批次,恢复必要的监控和资产跟踪,按保留的节点条件评估重新入服。归档记录不得删除;将未达到的指标转为整改任务,经复核后再安排下一次变更窗口。