首页 > 其他分享 >HDFS 重要机制之 checkpoint

HDFS 重要机制之 checkpoint

时间:2024-10-22 14:10:00浏览次数:6  
标签:HDFS 文件 edit txid checkpoint namenode 机制 fsimage

核心概念

hdfs checkpoint 机制对于 namenode 元数据的保护至关重要, 是否正常完成检查点是评估 hdfs 集群健康度和风险的重要指标

  • editslog : 对 hdfs 操作的事务记录,类似于 wal ,edit log文件以 edits_ 开头,后面跟一个txid范围段,并且多个edit log之间首尾相连,正在使用的 edit log 名字为 edits_inprogress_txid(dfs.namenode.edits.dir)
  • fsimage:文件系统的元数据,snn会定时合并将内存中的元数据落盘生成新的fsimage,默认会保存两个fsimage文件,文件格式为fsimage_txid(dfs.namenode.name.dir)
  • seen_txid:记录了最后一次 checkpoint 或者 edit 回滚(将 edits_inprogress_xxx 文件回滚成一个新的 Edits 文件)之后的 transaction ID。主要用来检查 NameNode 启动过程中 Edits 文件是否有丢失的情况

Pasted image 20221207103015.png

检查点将从旧的 fsimage 和编辑日志进行合并,创建一个新的 fsimage

Pasted image 20221128143125.png

checkpoint 触发由三个参数控制

dfs.namenode.checkpoint.period
dfs.namenode.checkpoint.txns
dfs.namenode.checkpoint.check.period

HA 集群的 checkpoint 过程

Pasted image 20221128160510.png

这里 standby namenode 称为 SBNN,active namenode 称为 ANN

  1. SBNN 查看是否满足创建检查点的条件(距离上次 checkpoint 的时间间隔大于等于 dfs.namenode.checkpoint.period
    edits log 中的事务条数达到 dfs.namenode.checkpoint.txns 限制)
  2. SBNN 将内存中当前的状态保存成一个新的文件,命名为fsimage.ckpt_txid。其中 txid 是最后一个 edit log 中的最后一条事务的 ID(transaction ID,不包括 inprogress)。然后为该 fsimage 文件创建一个MD5 文件,并将 fsimage 文件重命名为 fsimage_txid。
  3. SBNN 向 ANN 发送一条 HTTP GET 请求。请求中包含了 SBNN 的域名,端口以及新 fsimage 的 txid。
    ANN 收到请求后,用获取到的信息反过来向 SBNN 再发送一条 HTTP GET 请求,获取新的 fsimage 文件。这个新的 fsimage 文件传输到 ANN 上后,也是先命名为 fsimage.ckpt_txid,并为它创建一个 MD5 文件。然后再改名为 fsimage_txid,checkpoint过程完成。

 

生产实践

对于大规模的集群,如果长期未成功完成 checkpoint ,那么会积累非常多的 editlog 文件.重启 namenode 的时候,必须要回放 editlog ,以使内存中的目录树恢复到最新状态.回放 editlog 必然是逐个文件来回放的,此时如果积累了大量的 editlog 文件,那么这个过程会长达三个小时以上.增大 namenode 的内存可以适当加快这个过程.

  • edit 文件堆积处理

如果长期 edit 日志文件有堆积,可以进入安全模式后,手动运行 saveNamespace 命令来进行一次合并. 但是线上环境中,不能进入安全模式,这个时候可以通过重启 standynamenode 来触发一次 checkpoint

遇到过一次线上问题,由于 ann 锁的问题导致 sbnn 无法 put fsimage 到 ann,重启 sbnn 也无法完成最终完成 checkpoint ,这个时候可以等 sbnn namespace 正常启动后,然后进行一次主备切换,使之前锁住的 ann 变成了 sbnn,然后重启这个节点,此时就能够完成 checkpoint 了,堆积的 edit 文件也能够被清理了

  • 手动 checkpoint 方法

hdfs dfsadmin -fs 10.0.0.26:4007 -safemode enter
hdfs dfsadmin -fs 10.0.0.26:4007 -saveNamespace
hdfs dfsadmin -fs 10.0.0.26:4007 -safemode leave
hdfs dfsadmin -safemode forceExit //强制退出安全模式

  • 监控 checkpoint

有两个重要指标:

  1. TransactionsSinceLastCheckpoint 表示距离上次checkpoint的事务数,建议超过3000000 告警
  2. LastCheckpointTime 上次checkpoint的时间,建议距离当前时间超过12小时告警
  • 谨慎重启 NameNode

hdfs 在重启流程需要加载 edit logs,如果 edit logs 遗留有没被注意到的错误, hdfs 将会无法启动完成,导致生产事故

比较常见的原因是:
误删editslog、JournalNode节点有断电、数据目录磁盘占满、网络持续异常等

常见报错如下:

java.io.IOException: Gap in transactions. Expected to be able to read up until at least txid 813248390 but unable to find any edit logs containing txid 363417469

可以动态开启DEBUG 日志级别定位报错位置

解决办法:

  1. 查看其它的JournalNode的数据目录或NameNode数据目录中,有没有连续的该序号相关的连续的edits文件。如果可以找到,复制一个连续的片段到该JournalNode
  2. 使用namenode recovery 模式 跳过 edits 错误
  3. 使用 edits viewer 修复错误 edit 文件
  4. 从 active nn 恢复 standy nn
  5. 以上如不能解决,只能从fsimage恢复namenode 来上线 namenode

高频故障 issue:
https://issues.apache.org/jira/browse/HDFS-15175

 

标签:HDFS,文件,edit,txid,checkpoint,namenode,机制,fsimage
From: https://www.cnblogs.com/hdpdriver/p/18492566

相关文章

  • ActiveMQ消息模式Queue和Topic机制讲解
    Docker安装ActiveMQ镜像以及通过Java生产消费activemq示例_dockeractivemq-CSDN博客背景周末由于服务器异常宕机,导致业务系统重启后出现ActiveMQ中的数据没有被正常消费,运维认为是消息积压,便联系博主排查。最终发现并不存在消息积压,是因为采用ActiveMQTopic模式生产消费......
  • 架构和运行机制
    本篇主要介绍Streamlit的核心架构和运行机制,目的是希望朋友们能先从整体上宏观的了解Streamlit,利用它提供的机制开发性能更高效的应用。1.架构Streamlit比较特殊,它对使用者来说是BS架构应用,而随开发者来说其实更像一个CS架构的应用。为什么说Streamlit更像CS架构呢?因为后端......
  • 深入解析Apache DolphinScheduler容错机制
    简述ApacheDolphinschedulerMaster和Worker都是支持多节点部署,无中心化的设计。Master主要负责是流程DAG的切分,最终通过RPC将任务分发到Worker节点上以及Worker上任务状态的处理Worker主要负责是真正任务的执行,最后将任务状态汇报给Master,Master进行状态处理那问题来了:M......
  • IIS配置——关于IIS应用程序池回收机制的几项常用设置
    原文:http://bbs.kuaibiao.cn/thread-5857-1-1.html常规设置对启动模式、发生配置更改时禁止回收、固定时间间隔(分钟)、禁用重叠回收、闲置超时(分钟)这几项做一个说明。快速设置:1、打开IIS,在应用程序池上点击右键选择高级设置。2、常规分组下将启动模式选择为AlwaysRunning......
  • hadoop_hdfs详解
    HDFS秒懂HDFS定义HDFS优缺点优点缺点HDFS组成架构NameNodeDataNodeSecondaryNameNodeClientNameNode工作机制元数据的存储启动流程工作流程SecondaryNameNode工作机制checkpoint工作流程DataNode工作机制工作流程数据完整性文件块大小块太小的缺点块太大的缺点文......
  • ELK01 Elasticsearch部署和管理,集群工作机制 ubuntu使用
    企业级日志分析系统ELK1.1.1什么是ELK1.Elasticsearch是一个实时的全文搜索,存储库和分析引擎。2.Logstash是数据处理的管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如Elasticsearch等存储库中。(java开发,有数据处理能力,比较重)3.Kibana则可以让用户......
  • YOLO11改进-注意力-引入非局部注意力机制NonLocalBlockND 增强小目标、遮挡检测
                       本篇文章将介绍一个新的改进机制——NonLocalBlockND,并阐述如何将其应用于YOLOv11中,显著提升模型性能。首先,我们将解析NonLocalBlockND的工作原理,非局部注意力机制NonLocalBlockND通过在全局范围内捕捉特征图中所有位置的相互关系,提升......
  • YOLOv8改进:引入LSKAttention大核注意力机制,助力目标检测性能极限提升【YOLOv8】
    本专栏专为AI视觉领域的爱好者和从业者打造。涵盖分类、检测、分割、追踪等多项技术,带你从入门到精通!后续更有实战项目,助你轻松应对面试挑战!立即订阅,开启你的YOLOv8之旅!专栏订阅地址:https://blog.csdn.net/mrdeam/category_12804295.html文章目录YOLOv8改进:引入LSKAtte......
  • MoH:融合混合专家机制的高效多头注意力模型及其在视觉语言任务中的应用
    在深度学习领域,多头注意力机制一直是Transformer模型的核心组成部分,在自然语言处理和计算机视觉任务中取得了巨大成功。然而,研究表明并非所有的注意力头都具有同等重要性,许多注意力头可以在不影响模型精度的情况下被剪枝。基于这一洞察,这篇论文提出了一种名为混合头注意力(Mi......
  • 操作系统学习笔记-1.2操作系统的发展历程,运行机制
    文章目录批处理操作系统1.**单道(Single-ProgrammedSystem)**特点:举例:2.**多道(Multi-ProgrammingSystem)**特点:3.**单道与多道的对比**分时操作系统与实时操作系统1.**分时操作系统(Time-SharingOperatingSystem)**概念:特点:应用场景:举例:2.**实时操作系统(Real-Tim......