一种基于hadoop元数据的冷数据识别方法及系统与流程

文档序号:12124553阅读:426来源:国知局

本发明涉及大数据处理的技术领域,尤其涉及一种基于hadoop元数据的冷数据识别方法,以及基于hadoop元数据的冷数据识别系统。



背景技术:

目前在使用hadoop集群时,如果集群存储空间不够时,只能通知集群用户自己去识别hadoop集群上各自hdfs目录下的冷数据,然后进行删除。

中国专利申请(申请号:CN201310621705.0)提供了一种基于Hadoop框架的分布式文件监控系统,涉及图像数据处理技术领域,包括Hadoop集群和Client端,所述Hadoop集群中包括一个NameNode节点模块、一个NameNode代理模块、至少一个DataNode节点模块、一个含有配置文件和调度算法的匹配模块以及响应算法模块;所述NameNode代理模块接收Client端发来的HadoopClientProcotol接口中的函数信息,并转发该函数信息给NameNode节点模块,同时获取配置文件中配置的信息;本发明中的NameNode代理模块可获取所有的请求和消息,实现了对分布式文件系统的完全监控,并通过后续响应算法支持监控的同时做出处理。

但是,这种方式严重依赖于集群用户的积极性,而且用户在删除数据时很难做出决策来判断哪些是冷数据,哪些数据应该删除,这就导致了让用户识别冷数据并删除数据的效果大大折扣。所以随着公司业务的发展,当集群存储的数据越来越多,存储空间越来越少时,怎么去识别集群中的冷数据,以及按怎样的策略去删除这些冷数据成为各个公司在使用hadoop集群时头疼的问题。



技术实现要素:

为克服现有技术的缺陷,本发明要解决的技术问题是提供了一种基于hadoop元数据的冷数据识别方法,其可以很明确地知道hadoop集群文件系统中哪些是冷数据,根据元数据统计分析,然后推进集群用户删除冷数据,有效地识别冷数据,从而使得集群存储空间得到高效的利用。

本发明的技术方案是:这种基于hadoop元数据的冷数据识别方法,该方法包括以下步骤:

(1)准备镜像文件:在NameNode节点的${dfs.namenode.name.dir}/current/目录下找到镜像文件;

(2)解析镜像文件;

(3)根据步骤(2)解析出来的信息,将hadoop文件系统的所有文件和目录的元数据信息存储到关系型数据库mysql中;

(4)根据目录最近一次的访问时间,识别出没有被用户访问的目录和对应未访问的时间,再根据目录所属的用户和组,确定并通知存在冷数据目录的用户。

本发明解析hadoop的元数据,也即hadoop集群的镜像文件(镜像文件中包含了集群文件系统所有的文件和目录的inode信息),对hadoop集群hdfs的目录和文件进行解析分析,获取文件和目录的大小,最近访问时间,最近修改时间等详细信息,然后通过统计分析,再根据数据删除策略,对集群冷数据做删除处理,有效地识别冷数据,从而释放了集群存储空间,使得集群存储空间得到高效的利用。

还提供了一种基于hadoop元数据的冷数据识别系统,该系统包括:

准备镜像文件模块,其配置来在NameNode节点的${dfs.namenode.name.dir}/current/目录下找到镜像文件;

解析镜像文件模块,其配置来对镜像文件进行解析;

数据存储模块,其配置来根据解析镜像文件模块解析出来的信息,将hadoop文件系统的所有文件和目录的元数据信息存储到关系型数据库mysql中;

冷数据识别模块,其配置来根据目录最近一次的访问时间,识别出没有被用户访问的目录和对应未访问的时间,再根据目录所属的用户和组,确定并通知存在冷数据目录的用户。

附图说明

图1所示为根据本发明的基于hadoop元数据的冷数据识别方法的流程图。

具体实施方式

如图1所示,这种基于hadoop元数据的冷数据识别方法,该方法包括以下步骤:

(1)准备镜像文件:在NameNode节点的${dfs.namenode.name.dir}/current/目录下找到镜像文件;

(2)解析镜像文件;

(3)根据步骤(2)解析出来的信息,将hadoop文件系统的所有文件和目录的元数据信息存储到关系型数据库mysql中;

(4)根据目录最近一次的访问时间,识别出没有被用户访问的目录和对应未访问的时间,再根据目录所属的用户和组,确定并通知存在冷数据目录的用户。

本发明解析hadoop的元数据,也即hadoop集群的镜像文件(镜像文件中包含了集群文件系统所有的文件和目录的inode信息),对hadoop集群hdfs的目录和文件进行解析分析,获取文件和目录的大小,最近访问时间,最近修改时间等详细信息,然后通过统计分析,再根据数据删除策略,对集群冷数据做删除处理,有效地识别冷数据,从而释放了集群存储空间,使得集群存储空间得到高效的利用。

另外,所述步骤(1)中,在该目录下找到类似fsimage_0000000000019372521的文件即为hadoop的镜像文件,也就是咱们将要解析的hadoop元数据文件,镜像文件包含hadoop集群文件系统文件和目录的inode信息,inode信息包括:文件名称、目录名称、文件大小(file size)、文件和目录最近访问时间(access time)、文件和目录最近修改时间(modification time)、文件和目录所属的用户以及组信息、文件和目录权限信息等。fsimage文件格式是二进制的,不能直接识别,需要进一步解析。

另外,所述步骤(2)的解析包括:hadoop命令行解析和java api解析。

(1):hadoop命令行解析

命令行解析如下:

hdfs oiv-i fsimage_0000000000019372521-o fsimage.txt

-i:表示指定需要解析的镜像文件

-o:表示对镜像文件进行解析后,输出的文本文件

fsimage.txt文件包含了所有可以识别冷数据的元数据信息。

(2):java api解析

hadoop除了提供了命令行的方式解析fsimage文件,也提供了java api的方式来解析,java api的方式比命令行要复杂很多,需要对hadoop相关的源代码深入的理解。

另外,所述步骤(3)中,元数据信息包括:文件名称、目录名称、文件和目录大小(file/dir size)、文件和目录最近访问时间(access time)、文件和目录最近修改时间(modification time)、文件和目录所属的用户以及组信息。

另外,所述步骤(4)中,根据元数据信息,统计出各个目录的所有文件总大小(file size)、目录最近访问时间(access time)、目录最近修改时间、目录所属用户和组(user/group)。

另外,所述步骤(4)之后,督促用户做更进一步的决策,更进一步的决策包括:删除、提供数据保存时间。

本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种基于hadoop元数据的冷数据识别系统,该系统通常以与方法各步骤相对应的功能模块的形式表示。使用该方法的系统包括:

准备镜像文件模块,其配置来在NameNode节点的${dfs.namenode.name.dir}/current/目录下找到镜像文件;

解析镜像文件模块,其配置来对镜像文件进行解析;

数据存储模块,其配置来根据解析镜像文件模块解析出来的信息,将hadoop文件系统的所有文件和目录的元数据信息存储到关系型数据库mysql中;

冷数据识别模块,其配置来根据目录最近一次的访问时间,识别出没有被用户访问的目录和对应未访问的时间,再根据目录所属的用户和组,确定并通知存在冷数据目录的用户。

另外,所述准备镜像文件模块中,镜像文件包含hadoop集群文件系统文件和目录的inode信息,inode信息包括:文件名称、目录名称、文件大小、文件和目录最近访问时间、文件和目录最近修改时间、文件和目录所属的用户以及组信息、文件和目录权限信息。

另外,所述解析镜像文件模块包括hadoop命令行解析和java api解析。

另外,所述数据存储模块中,元数据信息包括:文件名称、目录名称、文件和目录大小、文件和目录最近访问时间、文件和目录最近修改时间、文件和目录所属的用户以及组信息。

本发明实现方案的具体过程如下:

(1)、准备镜像文件;

(2)、解析hadoop镜像文件;

(3)、保存解析后的文件数据到mysql;

(4)、对元数据进行统计分析;

(5)、识别出冷数据;

(6)、推进用户删除冷数据。

以上所述,仅是本发明的较佳实施例,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属本发明技术方案的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1