当前位置: 首页 > news >正文

HDFS回收站-删除策略详解

HDFS拥有回收站的功能,将某一段时间的删除的数据,放到指定路径(/user/{username}/.Trash),至少保留指定的时间,然后一起删除。

现实中发现回收站里有该删除的却没有删除,和回收站原理逻辑对不上。
以下从源码上看看到底是什么原因导致的。

背景

某HDFS集群指定数据保留时间为360分钟,理论是删除的数据至少保留6小时,才会被真正的删除。当前时间删除的数据放入(/user/{username}/.Trash/Current/)目录,以6小时为周期,每个周期的起点时间,将.Trash/Current/目录(也就是上个周期的被删除的数据)重命名为当前时间格式为yyMMddHHmmss 的名字的目录,例如 /user/hive/.Trash/240819080022。

正常的具体流程是:

        1. 08点 将目录名为: XXXXXX020000 的彻底删除(也就是目录名为凌晨02点)
        2. 将.Trash/Current/目录 重命名为:XXXXXX080000
        3. 14点 将目录名为: XXXXXX080000 的彻底删除(也就是目录名为凌晨08点)
        4. 将.Trash/Current/目录 重命名为:XXXXXX140000
        5. 20点 将目录名为: XXXXXX140000 的彻底删除(也就是目录名为凌晨14点)
        6. 将.Trash/Current/目录 重命名为:XXXXXX200000
        7. 02点 将目录名为: XXXXXX200000 的彻底删除(也就是目录名为凌晨20点)
        8. 将.Trash/Current/目录 重命名为:XXXXXX020000
        9. 重复执行到第1步,继续循序

发现的问题

从hdfs的容量监控中可以看到,每天的 2点8点14点20点 都会出现容量降下去。但是现实中发现,唯独每天14点却没有明显的容量下降?这个不是个别现象,每天如此。

这种原因究竟是什么导致的?

根据以上流程14点应该删除的是目录名为 XXXXXX080000 。可以到命令行中查看.Trash/目录的情况,发现 XXXXXX080000 仍在,没有被删除。

$ hadoop fs -ls /user/XXXXXX/.Trash
Found 3 items
drwx------   - XXXXXX XXXXXX          0 2024-08-19 02:00 /user/XXXXXX/.Trash/240819080022
drwx------   - XXXXXX XXXXXX          0 2024-08-19 08:00 /user/XXXXXX/.Trash/240819140013
drwx------   - XXXXXX XXXXXX          0 2024-08-19 14:00 /user/XXXXXX/.Trash/Current

这里问题进一步锁定是14点要删除的没删,所以导致容量没有下降。

问题探索

1.查看源码

namenode调用

namenode 启动一个新的守护


http://www.mrgr.cn/news/5880.html

相关文章:

  • 自动控制——用描述函数法分析非线性系统的稳定性与自激振荡
  • 健康减调攻略:1月轻松掉十斤
  • 设计模式 - 责任链模式
  • 探索tailwindcss多主题切换
  • 在线文档翻译免费的有哪些?翻译达人必备工具
  • 数据在内存中的存储
  • Linux入门——11 线程
  • Flutter->`Flutter` 通过`ffi`调用`Rust`编译生成的产物.so文件(Android)和.a文件(iOS)接口方法
  • Focal Loss详解及其pytorch实现
  • Vue.js:从入门到进阶
  • 扫描包得到所有Bean的Class对象
  • Linux 信号 signal,sigaction,sigqueue,kill,相关函数
  • uni-app02
  • 安装 podman 与 podman-compose
  • SQL关键字检测持续优化,太难了
  • Pytorch:复写Dataset函数详解,以及Dataloader如何调用
  • 【数据分析】数据的计量尺度、数据集中趋势
  • 探索高效院内导航系统:最新技术解决方案与实战代码分享
  • 如何在算家云搭建模型mPLUG-Owl3(智能对话)
  • 第 10 章 正则表达式