大数据运维 · 高级

Hadoop DataNode 下线

以 HDFS 正式退役流程迁移 DataNode 副本,核对容量、机架与业务负载后再停止服务并交接资产。

HadoopLinux监控告警自动化高可用

场景目标

按批次完成目标 DataNode 的正式退役,证明副本迁移和机架放置满足策略,核心路径无新增缺失或损坏块,任务与容量指标保持在批准阈值内,再停止对应服务。

环境要求

参考 Apache Hadoop 3.4.2 的 HDFS 管理命令,实际集群版本、发行版、HA 拓扑及 host provider 必须预先核对。需要具备 HDFS 管理权限的操作账号、配置仓库审阅权及目标主机服务管理权限;Kerberos 环境须使用有效短期票据。剩余节点须能容纳退役数据、副本策略和业务增长,并满足机架放置。安排 180 分钟准备与核验窗口;块迁移可能持续数小时或数天,完成状态和业务阈值优先于估算时间。需保留原配置、目标数据目录及节点重新入服路径。

参考架构 · 非实时拓扑

HDFS 退役控制与副本重建架构

由 NameNode 调度退役,块数据在 DataNode 之间复制;配置分发、业务读写和健康观测各自独立,复制完成后才进入精确停服。

  • 数据 / 请求
  • 控制 / 管理
  • 观测 / 查询

点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。

HDFS 退役控制与副本重建架构:组件关系图由 NameNode 调度退役,块数据在 DataNode 之间复制;配置分发、业务读写和健康观测各自独立,复制完成后才进入精确停服。 变更负责人 → Ansible:批准配置;Ansible → NameNode:分发并受控刷新;NameNode → 待退役 DataNode:管理退役状态;NameNode → 在服 DataNode:调度副本放置;待退役 DataNode → 在服 DataNode:块副本重建;NameNode → Prometheus:状态指标;在服 DataNode → Prometheus:容量与负载。箭头说明见下方流向解读。
逻辑参考图,以 Hadoop 3.4.2 为阅读基准;节点数量、机架及监控接入待现场确认,不表示已部署或已完成退役。

变更负责人

入口 / 来源

确认目标存储身份、机架余量、同机计算服务及停止条件;退役批准不包含擦盘授权。

全部组件职责 6 个组件
变更负责人
确认目标存储身份、机架余量、同机计算服务及停止条件;退役批准不包含擦盘授权。
Ansible
将已审阅的 host provider 配置分发到相关 NameNode,保持 HA 配置一致,不同时停止 DataNode。工具介绍 Ansible
NameNode
读取退役配置、核对块放置并管理重建过程;NameNode 不承载客户端的实际块数据传输。工具介绍 NameNode
待退役 DataNode
提供仍需读取的块副本,直到正式退役完成;已有其他健康副本也可能成为复制来源。工具介绍 待退役 DataNode
在服 DataNode
接收按复制或纠删码策略重建的数据,逐机架和存储类型核对空间,不只看全局剩余容量。工具介绍 在服 DataNode
Prometheus
复用已验证的 Hadoop 指标链路,观察复制队列、缺失块、容量及业务影响;未接入项明确标为缺口。工具介绍 Prometheus
流向解读 7 条连接
  1. 1

    变更负责人 Ansible

    控制 / 管理 · 批准配置

    审批绑定精确节点集合、配置差异和分发目标。

  2. 2

    Ansible NameNode

    控制 / 管理 · 分发并受控刷新

    先核对各 NameNode 配置一致,再由获准身份按 HA 约定刷新节点配置。

  3. 3

    NameNode 待退役 DataNode

    控制 / 管理 · 管理退役状态

    退役中不是已完成;只有管理状态及块健康验收通过才能停服。

  4. 4

    NameNode 在服 DataNode

    控制 / 管理 · 调度副本放置

    控制关系表达目标选择,不表示块数据经过 NameNode。

  5. 5

    待退役 DataNode 在服 DataNode

    数据 / 请求 · 块副本重建

    示意从可用副本向剩余节点复制;实际来源和链路由集群调度。

  6. 6

    NameNode Prometheus

    观测 / 查询 · 状态指标

    退役状态与复制队列进入已有采集链路,和管理查询交叉核对。

  7. 7

    在服 DataNode Prometheus

    观测 / 查询 · 容量与负载

    观察剩余存储、网络和业务周期,超出预算停止扩大批次。

从架构到实施

  1. 01

    先算容量,再下发配置

    读图上层:明确批次与机架约束,保留原配置,目标 DataNode 在审批和分发阶段继续服务。

  2. 02

    控制状态不等于搬运完成

    读图中部:刷新触发状态变化,块复制发生在数据节点之间,以持续进展和业务基线决定是否继续。

  3. 03

    越过完成门槛后才停服

    对照最终管理状态、关键数据读测和同机任务排空结果,再停止精确服务并进入观察交接。

故障域与操作边界

退役与维护模式不同

不能用暂时离线或进入退役中代替 Decommissioned;存在丢块、放置约束不满足或异常安全模式时停止。

计算与数据保留分别处理

HDFS 退役不会自动排空 NodeManager 和同机业务;保留数据目录、配置与日志,磁盘清理需独立审批。

重新入服仍需验证

恢复配置和服务后还需等待块报告、重新接纳与副本健康检查,不能承诺瞬时回退。

架构依据与版本核对 1 篇官方资料

图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。

方案说明

架构与适用范围

适用于 HDFS 集群中计划移除单台或小批量 DataNode。由 NameNode 管理退役和副本重建,Ansible 固化配置分发,Prometheus 观察复制、容量与业务影响;监控采集需复用已验证的 Hadoop 指标接入。

不适用边界

本文是待实施验证的操作流程,不处理正在丢块的紧急恢复,也不将退役等同于短期维护模式。无法容纳目标副本、机架放置约束不满足、存在不可读数据或处于异常安全模式时不得继续。HDFS 退役不自动排空同机的 YARN NodeManager、计算服务或本地业务目录,需要分别确认。

全局验收

目标节点最终进入 Decommissioned,关键路径数据可读、缺失块与损坏块无新增,副本放置及剩余容量符合策略;关联计算任务已迁移,停止服务后继续观察无退化。只有正式退役完成和独立的数据保留审批完成后,才可进入后续资产清理。

配套知识

官方参考

工具编排

3 个关联工具
  1. Hadoop副本与节点退役由 NameNode 驱动副本重建并提供节点管理、块健康与数据读取证据。
  2. Ansible配置分批交付审阅并分发 host provider 所需配置,限制到批准节点且保留回退版本。
  3. Prometheus迁移期间监测复用已有 Hadoop 指标采集,观察块健康、容量和业务负载变化。

实施步骤

共 7 步
  1. 01

    冻结范围并读取块健康基线

    列出拟退役主机名、存储 ID、机架和承载服务,先从一台非关键节点开始。使用已配置认证的管理客户端查询容量与安全模式,并在批准的核心目录执行只读 fsck,记录异常作为基线。大型集群避免无边界扫描整个命名空间,先评估 NameNode 查询负载;示例目录需替换为实际获准路径。

    hdfs dfsadmin -report
    hdfs dfsadmin -safemode get
    hdfs fsck /data/approved-sample
    验证标准

    节点身份和机架与资产记录一致,关键目录可读,缺失块、损坏块及低冗余块均有基线。若已存在不能解释的数据异常或安全模式状态异常,工单被明确暂停而不是继续修改退役配置。

    停止与回退

    只读检查不更改 HDFS 数据。若扫描影响 NameNode 响应,停止本次查询并缩小目录范围,保留已有输出;如果基线异常则移交数据恢复处理,保持目标 DataNode 继续服务并暂停退役。

    返回步骤起点
  2. 02

    核算剩余容量和机架约束

    按目标节点实际数据量、复制策略、纠删码策略和持续增长量核算剩余空间,分别检查每个机架与存储类型,不能只比较全局空闲总量。确认配置采用传统 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 来绕过不明确的现状。

    返回步骤起点
  3. 03

    审阅并分发退役配置

    依据已确认的 provider 编写退役清单:传统配置使用排除文件,组合式配置按官方 JSON 状态表达。备份当前版本,使用 Ansible 限定到应接收配置的 NameNode 主机,并先审阅差异、路径、属主和权限。HA 环境确认相关 NameNode 的配置一致;本步骤只交付配置,不同时停止 DataNode 或删除其数据目录。

    验证标准

    差异仅包含批准的目标节点,所有相关 NameNode 收到相同版本且权限正确;目标 DataNode 仍在线并能提供数据。审阅记录能对应具体配置文件、哈希、分发结果和本次退役节点集合。

    停止与回退

    如果分发不完整或清单误匹配,恢复各 NameNode 上保存的原配置,核对版本一致后暂停。此时尚未触发刷新,应保持数据节点运行;不要把不一致配置留给后续自动化任务再次加载。

    返回步骤起点
  4. 04

    触发刷新并观察退役启动

    由 HDFS 管理账号在变更窗口按集群 HA 约定执行节点配置刷新,使 NameNode 读取已审阅的退役清单。检查目标节点进入 Decommission In Progress,并确认复制工作开始调度。每一批次只处理批准数量,记录刷新时间与负责人;状态不变时先检查配置加载和节点身份,不反复添加主机别名或尝试强制停止节点。

    验证标准

    目标节点进入预期退役中状态,非目标节点继续正常服务,NameNode 日志没有配置解析错误。副本迁移可以从管理状态和指标相互印证,刷新动作与实际配置版本在工单中一一对应。

    停止与回退

    如误触发或指标迅速越过阈值,恢复该 provider 下目标节点的在服配置并执行受控刷新,观察节点重新接纳状态。重新入服并非瞬时完成,需要继续确认块报告、业务负载和复制队列恢复。

    返回步骤起点
  5. 05

    控制副本迁移期间的负载

    持续观察复制队列、缺失块、磁盘剩余量、网络吞吐和核心作业时延,并以原基线区分迁移负载与已有问题。退役持续时间受块数量、带宽和放置条件影响,超时先定位受阻块及目标机架容量。需要调整复制并发或带宽时单独审阅、分次试验,不能为赶窗口降低副本数或跳过块健康检查。

    验证标准

    迁移有持续进展,剩余容量和关键业务指标未超过阈值,没有新增缺失或损坏块。被阻塞的块能够对应到明确原因和处理负责人,任何限流参数变化均记录前后值和观察结果。

    停止与回退

    业务受影响时先停止扩大批次,恢复本次调整的并发或带宽设置,并评估将目标节点重新入服。若出现数据不可读,立即升级为数据事件保留节点和日志,不能通过停止告警或删块消除异常表象。

    返回步骤起点
  6. 06

    确认退役完成后停止服务

    只有 NameNode 明确显示目标节点已 Decommissioned,且关键路径块健康和读测试再次通过后,才进入停服阶段。确认同机 NodeManager 任务与其他服务已独立排空,按资产清单停止精确目标的 DataNode 服务。保留数据目录、配置和日志至约定保留期,记录硬件与服务归属;正式退役完成不自动授权擦除磁盘。

    验证标准

    管理端记录最终退役完成状态,停止服务前后关键数据读取成功,目标节点之外没有新增离线节点。计算任务已迁移,数据目录仍在,服务停止记录与主机身份以及审批批次能够相互核验。

    停止与回退

    停服后发现关联服务遗漏或数据访问退化时,先恢复精确目标服务,再按既定流程撤销退役配置并刷新。保留原数据目录有助于重新入服,但必须等待块报告和副本健康确认后才能视为恢复。

    返回步骤起点
  7. 07

    复核容量趋势并归档交接

    在约定业务观察窗口持续核对存储余量、放置约束、缺失块和作业成功率,覆盖至少一个代表性作业周期。更新资产、监控目标及配置仓库中的节点状态,避免已退役节点被自动重新纳入管理。归档配置版本、状态证据和未完成事项;后续复用或报废磁盘作为单独的数据保留与清理流程,由资产负责人承接。

    验证标准

    观察期内数据健康无新增异常,剩余容量增长符合规划,关键作业成功率未退化。资产和配置记录一致,值班人员知道数据保留期限、重新入服条件及下一批次是否具备实施条件。

    停止与回退

    观察未通过时暂停后续退役批次,恢复必要的监控和资产跟踪,按保留的节点条件评估重新入服。归档记录不得删除;将未达到的指标转为整改任务,经复核后再安排下一次变更窗口。

    返回步骤起点

DOUYA OPS ECOSYSTEM

体验豆芽自研工具与场景能力

部分场景提供体验环境,用于功能验证、测试和技术交流。