一种数据缓存方法以及相关装置制造方法及图纸

技术编号:13428263 阅读:86 留言:0更新日期:2016-07-29 18:19
本发明专利技术实施例公开了一种数据缓存方法,适用于分布式文件系统,用于提升分布式文件系统的并发性能,保证分布式文件系统能够正常运行大数据应用。其中,所述分布式文件系统包括按列存储的第一文件,所述第一文件包括不少于一个列数据,所述方法包括:确定第一文件的列数据中的热点列数据;将所述热点列数据拼接为第二文件;将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在所述第一文件的本地节点的内存中被访问。本发明专利技术实施例还公开了相关的数据缓存装置。

【技术实现步骤摘要】

本专利技术涉及数据处理领域,尤其涉及一种数据缓存方法以及相关装置
技术介绍
Hadoop分布式文件系统(HDFS,HadoopDistributedFileSystem),是一种运行在商用服务器上的分布式文件系统,具有高可扩展性、高可用性、高吞吐量等特点,可以存放海量数据,因此现阶段的技术中,很多大数据应用都以HDFS作为底层的文件系统。HDFS中的数据存储于数据节点(DataNode)主机的本地磁盘上,但磁盘的输入/输出(I/O)的效率较低,直接影响了HDFS的服务性能。为了提升HDFS的服务性能,现阶段的技术中采用“集中式缓存”技术,将磁盘中的文件预先缓存到数据节点的内存之中,使得应用可以直接从内存中访问需要的文件。由于内存的I/O效率要远高于磁盘的I/O效率,因此集中式缓存技术可以大幅度的提升HDFS的服务性能。但是,由于HDFS中存储的文件通常较大,因此集中式缓存技术会占用系统中各数据节点的大量内存,造成内存资源不足问题。更进一步的,由于HDFS中存储的文件通常较大,因此集中式缓存技术为了节约内存,即便一份文件在多个数据节点的磁盘中有备份,缓存到内存中的文件副本数通常也为1,这样就导致了所有使用该文件的应用都会被调度到该文件副本的本地数据节点上,造成该本地数据节点超负荷,引发数据热点问题,导致分布式文件系统不能正常运行大数据应用。
技术实现思路
本专利技术实施例提供了一种数据缓存方法,用于节约分布式文件系统的内存空间,提升分布式文件系统的并发性能,保证分布式文件系统能够正常运行大数据应用。r>本专利技术实施例的第一方面提供了一种数据缓存方法,适用于分布式文件系统,所述分布式文件系统包括按列存储的第一文件,所述第一文件包括不少于一个列数据,所述方法包括:确定第一文件的列数据中的热点列数据;将所述热点列数据拼接为第二文件;将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在所述第一文件的本地节点的内存中被访问。结合本专利技术实施例的第一方面,本专利技术实施例的第一方面的第一种实现方式中,所述确定第一文件的列数据中的热点列数据包括:确定预置时间段内所述第一文件的每个列数据的被访问次数;将被访问次数不小于M的列数据确定为热点列数据,所述M为预置正整数。结合本专利技术实施例的第一方面或第一方面的第一种实现方式,本专利技术实施例的第一方面的第二种实现方式中,所述第一文件包括N个热点列数据,所述N为预置正整数,所述将所述热点列数据拼接为第二文件包括:根据所述第一文件的元数据信息,确定每个热点列数据的数据长度,所述元数据信息用于描述所述分布式文件系统中的文件,所述第一文件的元数据信息中记录有所述第一文件的列数据的第一保存路径、数据长度与第一偏移位置,所述第一偏移位置用于表示所述第一文件的列数据在所述第一文件中的偏移位置;根据所述每个热点列数据的数据长度,确定每个热点列数据的第二偏移位置,所述第二偏移位置用于表示所述热点列数据在所述第二文件中的偏移位置,其中,第n个热点列数据的第二偏移位置为前(n-1)个热点列数据的数据长度的和,其中,2≤n≤N;根据每个热点列数据的第二偏移位置,将所述N个热点列数据依次拼接起来,得到第二文件。结合本专利技术实施例的第一方面的第二种实现方式,本专利技术实施例的第一方面的第三种实现方式中,所述将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在所述第一文件的本地节点的内存中被访问包括:将所述第二文件写入到所述第一文件的本地节点的内存中;更新所述第一文件的元数据信息,使得所述第一文件的元数据信息中记录的热点列数据的第一保存路径被替换为所述热点列数据在第二文件中的第二保存路径,且所述热点列数据的第一偏移位置被替换为所述第二偏移位置。结合本专利技术实施例的第一方面、或第一方面的第一种至第三种实现方式中的任一项,本专利技术实施例的第一方面的第四种实现方式还包括:将所述第二文件锁定在所述第一文件的本地节点的内存中。本专利技术实施例的第二方面提供了一种数据缓存装置,适用于分布式文件系统,所述分布式文件系统包括按列存储的第一文件,所述第一文件包括不少于一个列数据,所述装置包括:确定模块,用于确定第一文件的列数据中的热点列数据;拼接模块,用于将所述热点列数据拼接为第二文件;缓存模块,用于将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在所述第一文件的本地节点的内存中被访问。结合本专利技术实施例的第二方面,本专利技术实施例的第二方面的第一种实现方式中,所述确定模块包括:次数确定单元,用于确定预置时间段内所述第一文件的每个列数据的被访问次数;热点确定单元,用于将被访问次数不小于M的列数据确定为热点列数据,所述M为预置正整数。结合本专利技术实施例的第二方面或第二方面的第一种实现方式,本专利技术实施例的第二方面的第二种实现方式中,所述第一文件包括N个热点列数据,所述N为预置正整数,所述拼接模块包括:长度确定单元,用于根据所述第一文件的元数据信息,确定每个热点列数据的数据长度,所述元数据信息用于描述所述分布式文件系统中的文件,所述第一文件的元数据信息中记录有所述第一文件的列数据的第一保存路径、数据长度与第一偏移位置,所述第一偏移位置用于表示所述第一文件的列数据在所述第一文件中的偏移位置;偏移确定单元,用于根据所述每个热点列数据的数据长度,确定每个热点列数据的第二偏移位置,所述第二偏移位置用于表示所述热点列数据在所述第二文件中的偏移位置,其中,第n个热点列数据的第二偏移位置为前(n-1)个热点列数据的数据长度的和,其中,2≤n≤N;数据拼接单元,用于根据每个热点列数据的第二偏移位置,将所述N个热点列数据依次拼接起来,得到第二文件。结合本专利技术实施例的第二方面的第二种实现方式,本专利技术实施例的第二方面的第三种实现方式中,所述缓存模块包括:文件写入单元,用于将所述第二文件写入到所述第一文件的本地节点的内存中;信息更新单元,用于更新所述第一文件的元数据信息,使得所述第一文件的元数据信息中记录的热点列数据的第一保存路径被替换为所述热点列数据在第二文件中的第二保存路径,且所述热点列数据的第一偏移位置被替换为所述第二偏移位置。结合本专利技术实施例的第二方面、或第二方面的第一种至第三种实现方式中的任一项,本专利技术实施例的第二方面的第四种实现方式还包括:锁定模块,用于将所述第二文件锁定在所述第一文件的本地节点的内存中。本专利技术实施例提供了一种数据缓存方法,应用在分布式文件系统的集中式缓存技术中,包括:确定第一文件的列数据中的热点列数据;将所述热点列数据拼接为第二文件;将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在所述第一文件的本地节点的内存中被访问。通过这样的方法,使得第一文件不需要被全部缓存到内存中,只需要将其中较为热点的列数据缓存到内存中即可。节约了数据节点的本文档来自技高网...

【技术保护点】
一种数据缓存方法,适用于分布式文件系统,其特征在于,所述分布式文件系统包括按列存储的第一文件,所述第一文件包括不少于一个列数据,所述方法包括:确定第一文件的列数据中的热点列数据;将所述热点列数据拼接为第二文件;将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在所述第一文件的本地节点的内存中被访问。

【技术特征摘要】
1.一种数据缓存方法,适用于分布式文件系统,其特征在于,所述分布
式文件系统包括按列存储的第一文件,所述第一文件包括不少于一个列数据,
所述方法包括:
确定第一文件的列数据中的热点列数据;
将所述热点列数据拼接为第二文件;
将所述第二文件缓存到所述第一文件的本地节点的内存中,使得所述热
点列数据可以在所述第一文件的本地节点的内存中被访问。
2.根据权利要求1所述的数据缓存方法,其特征在于,所述确定第一文
件的列数据中的热点列数据包括:
确定预置时间段内所述第一文件的每个列数据的被访问次数;
将被访问次数不小于M的列数据确定为热点列数据,所述M为预置正整
数。
3.根据权利要求1或2所述的数据缓存方法,其特征在于,所述第一文
件包括N个热点列数据,所述N为预置正整数,所述将所述热点列数据拼接
为第二文件包括:
根据所述第一文件的元数据信息,确定每个热点列数据的数据长度,所
述元数据信息用于描述所述分布式文件系统中的文件,所述第一文件的元数
据信息中记录有所述第一文件的列数据的第一保存路径、数据长度与第一偏
移位置,所述第一偏移位置用于表示所述第一文件的列数据在所述第一文件
中的偏移位置;
根据所述每个热点列数据的数据长度,确定每个热点列数据的第二偏移
位置,所述第二偏移位置用于表示所述热点列数据在所述第二文件中的偏移
位置,其中,第n个热点列数据的第二偏移位置为前(n-1)个热点列数据的
数据长度的和,其中,2≤n≤N;
根据每个热点列数据的第二偏移位置,将所述N个热点列数据依次拼接
起来,得到第二文件。
4.根据权利要求3所述的数据缓存方法,其特征在于,所述将所述第二
文件缓存到所述第一文件的本地节点的内存中,使得所述热点列数据可以在
所述第一文件的本地节点的内存中被访问包括:
将所述第二文件写入到所述第一文件的本地节点的内存中;
更新所述第一文件的元数据信息,使得所述第一文件的元数据信息中记
录的热点列数据的第一保存路径被替换为所述热点列数据在第二文件中的第
二保存路径,且所述热点列数据的第一偏移位置被替换为所述第二偏移位置。
5.根据权利要求1或2所述的数据缓存方法,其特征在于,所述方法还
包括:
将所述第二文件锁定在所述第一文件的本地节点的内存中。
6.一种数据缓存装置,适用于分...

【专利技术属性】
技术研发人员:苗永强李雪斌
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1