HDFS空目录定位方法、装置、设备及介质制造方法及图纸

技术编号:37119048 阅读:20 留言:0更新日期:2023-04-01 05:13
本申请提供一种HDFS空目录定位方法、装置、设备及介质,旨在解决HDFS空目录定位过程效率低且容易影响HDFS正常数据业务的问题,其中,该方法包括:获取分布式文件系统HDFS的二进制的元数据文件,并将所述元数据文件进行反序列化,得到第一明文文件;基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数,并将所述文件数和所述第一明文文件封装成第二明文文件;在Hive表中加载所述第二明文文件,得到明文文件Hive表;以及,对所述明文文件Hive表中存放空文件的目录进行定位,得到定位信息。通过上述方法,能够无侵入快速、准确地定位到空目录,提高空目录的定位效率,为空目录的清理提供支撑和便利,有效提高了HDFS的稳定性。定性。定性。

【技术实现步骤摘要】
HDFS空目录定位方法、装置、设备及介质


[0001]本申请涉及计算机
,尤其涉及一种HDFS空目录定位方法、装置、设备及介质。

技术介绍

[0002]在HDFS(Hadoop Distributed File System,分布式文件系统)的实际使用过程中,其稳定性会随着文件数量的增多而变差,尤其在存在大量无用的空目录的情况下,将进一步导致存储系统的不稳定性。因此,如何快速定位HDFS中的空目录值得研究。
[0003]相关技术中,定位HDFS中的空目录主要通过递归遍历整个HDFS的目录结构树来获取所有的空目录列表,继而定位到所有目录列表中的空目录,这种方式会对HDFS造成很大的数据压力,并且可能影响正常数据业务的开展,而且耗时非常长。

技术实现思路

[0004]鉴于上述问题,即HDFS空目录定位过程影响HDFS正常数据业务以及效率低等问题,本申请提供一种HDFS空目录定位方法、装置、设备及介质。
[0005]为了实现上述目的,本申请提供如下技术方案:
[0006]本申请提供一种分布式文件系统HDFS空目录定位方法,包括:
[0007]获取分布式文件系统HDFS的二进制的元数据文件,并将所述元数据文件进行反序列化,得到第一明文文件;
[0008]基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数,并将所述文件数和所述第一明文文件封装成第二明文文件;
[0009]在Hive表中加载所述第二明文文件,得到明文文件Hive表;以及,对所述明文文件Hive表中存放空文件的目录进行定位,得到定位信息。
[0010]在一种实施方式中,所述基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数,包括:
[0011]基于分布式计算引擎遍历所述第一明文文件中所有文件分别所属的父目录和/或子目录,并获取每个父目录和/或子目录下的文件数;
[0012]对相同父目录和/或子目录下的文件数进行聚合,得到每个目录对应的文件数。
[0013]在一种实施方式中,所述获取分布式文件系统HDFS的二进制的元数据文件,包括:
[0014]从分布式文件系统HDFS的元数据节点NameNode中提取二进制的元数据文件。
[0015]在一种实施方式中,所述将所述元数据文件进行反序列化,包括:
[0016]获取所述元数据文件的结构信息,并基于所述结构信息获取对应的反序列化程序;
[0017]基于所述反序列化程序将所述元数据文件进行反序列化。
[0018]在一种实施方式中,所述明文文件Hive表中携带关于每个目录的第一字段及关于对应目录下文件数的第二字段,
[0019]所述对所述明文文件Hive表中存放空文件的目录进行定位,包括:
[0020]基于对象关系映射框架查询语言HQL查询所述明文文件Hive表中字段信息为预设值的第二字段,并获取所述字段信息为预设值的第二字段相对应的第一字段;
[0021]基于所述字段信息为预设值的第二字段相对应的第一字段对目标目录进行定位,所述目标目录为存放空文件的目录。
[0022]在一种实施方式中,在获取分布式文件系统HDFS的二进制的元数据文件之后,以及将所述元数据文件进行反序列化之前,还包括:
[0023]将所述元数据文件推送至与生产环境无关的服务器集群中;
[0024]所述将所述元数据文件进行反序列化,包括:在所述服务器集群中将所述元数据文件进行反序列化。
[0025]在一种实施方式中,所述第一明文文件或者所述第二明文文件的格式包括:分布式系统文件HDFS的文件路径和目录路径HDFS_DIR;副本数REPLICATION;修改时间MODIFICATION_TIME;或者,访问时间ACCESS_TIME。
[0026]根据本申请的另一方面,提供一种分布式文件系统HDFS空目录定位装置,包括:
[0027]元数据获取模块,其设置为获取分布式文件系统HDFS的二进制的元数据文件,并将所述元数据文件进行反序列化,得到第一明文文件;
[0028]文件数获取模块,其设置为基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数;
[0029]封装模块,其设置为将所述文件数和所述第一明文文件封装成第二明文文件;
[0030]加载模块,其设置为在Hive表中加载所述第二明文文件,得到明文文件Hive表;以及,定位模块,其设置为对所述明文文件Hive表中存放空文件的目录进行定位,得到定位信息。
[0031]根据本申请的又一方面,提供一种电子设备,包括:存储器和处理器;
[0032]所述存储器存储计算机执行指令;
[0033]所述处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行所述的分布式文件系统HDFS空目录定位方法。
[0034]根据本申请的再一方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现所述的分布式文件系统HDFS空目录定位方法。
[0035]本申请提供的HDFS空目录定位方法、装置、设备及介质,通过获取分布式文件系统HDFS的二进制的元数据文件,并将所述元数据文件进行反序列化,得到第一明文文件,然后基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数,并将所述文件数和所述第一明文文件封装成第二明文文件,在Hive表中加载所述第二明文文件,得到明文文件Hive表,最后对所述明文文件Hive表中存放空文件的目录进行定位,得到定位信息,能够快速、准确地定位到空目录,提高空目录的定位效率,为空目录的清理提供支撑和便利,有效提高了HDFS的稳定性。
附图说明
[0036]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施
例,并与说明书一起用于解释本申请的原理。
[0037]图1a为分布式文件系统HDFS的网络架构图;
[0038]图1b为相关技术中提高分布式文件系统HDFS稳定性的网络架构图;
[0039]图2为本申请实施例提供的一种可能的场景示意图;
[0040]图3为本申请实施例提供的一种HDFS空目录定位方法的流程示意图;
[0041]图4为本申请实施例提供的另一种HDFS空目录定位方法的流程示意图之一;
[0042]图5为本申请实施例提供的另一种HDFS空目录定位方法的流程示意图之二;
[0043]图6为本申请实施例提供的一种HDFS空目录定位装置的结构示意图;
[0044]图7为本申请实施例提供的一种电子设备的结构示意图。
[0045]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
[0046]HDFS本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式文件系统HDFS空目录定位方法,其特征在于,包括:获取分布式文件系统HDFS的二进制的元数据文件,并将所述元数据文件进行反序列化,得到第一明文文件;基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数,并将所述文件数和所述第一明文文件封装成第二明文文件;在Hive表中加载所述第二明文文件,得到明文文件Hive表;以及,对所述明文文件Hive表中存放空文件的目录进行定位,得到定位信息。2.根据权利要求1所述的方法,其特征在于,所述基于分布式计算引擎获取所述第一明文文件中每个目录对应的文件数,包括:基于分布式计算引擎遍历所述第一明文文件中所有文件分别所属的父目录和/或子目录,并获取每个父目录和/或子目录下的文件数;对相同父目录和/或子目录下的文件数进行聚合,得到每个目录对应的文件数。3.根据权利要求1或2所述的方法,其特征在于,所述获取分布式文件系统HDFS的二进制的元数据文件,包括:从分布式文件系统HDFS的元数据节点NameNode中提取二进制的元数据文件。4.根据权利要求1所述的方法,其特征在于,所述将所述元数据文件进行反序列化,包括:获取所述元数据文件的结构信息,并基于所述结构信息获取对应的反序列化程序;基于所述反序列化程序将所述元数据文件进行反序列化。5.根据权利要求1所述的方法,其特征在于,所述明文文件Hive表中携带关于每个目录的第一字段及关于对应目录下文件数的第二字段,所述对所述明文文件Hive表中存放空文件的目录进行定位,包括:基于对象关系映射框架查询语言HQL查询所述明文文件Hive表中字段信息为预设值的第二字段,并获取所述字段信息为预设值的第二字段相对应的第一字段;基于所述字段信息为预设值的第二字段相对应的第一字段对目标目录进行定位,所述目标目录为存放空文件的目录。6.根据...

【专利技术属性】
技术研发人员:穆纯进王云朋
申请(专利权)人:联通数字科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1