一种分布式数据存取方法、装置和系统制造方法及图纸

技术编号:10643354 阅读:104 留言:0更新日期:2014-11-12 17:10
本发明专利技术公开了一种分布式数据存取方法、装置和系统,其中,分布式数据存储方法包括:小文件处理模块接收客户端上传的文件;当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给Hadoop分布式文件系统HDFS。本发明专利技术能够在大量存储小文件时,节省占用主节点的内存,提高HDFS存取数据的效率。

【技术实现步骤摘要】

本专利技术涉及数据存取技术,尤其涉及一种分布式数据存取方法、装置和系统
技术介绍
在当前的分布式存储体系中,一般采用Hadoop作为存储技术,所述Hadoop是一种开源的分布式系统基础架构。Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)中存储的每个文件需要与一个块(Block)对应,HDFS中的主节点(NameNode)需要为每个文件和其对应的块建立缓存映射。HDFS中存储的文件数量越多,需要建立的缓存映射就越多,占用的主节点的内存越多。由此,HDFS只适合存储大文件(例如数据量大于64M的文件),当HDFS存储大量小文件(例如数据量小于64M的文件),如图片、文档等仅有几M甚至几十K的小文件时,需要建立大量的缓存映射,由此会极大的占用主节点的内存,导致HDFS存取数据的效率大大降低。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种分布式数据存取方法、装置和系统,能够在大量存储小文件时,节省占用主节点的内存,提高HDFS存取数据的效率。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供的一种分布式数据存储方法,所述方法包括:小文件处理模块接收客户端上传的文件;当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给Hadoop分布式文件系统HDFS。较佳地,所述将所述文件保存在本地系统之后,所述方法还包括:记录所述文件的数据量。较佳地,将各文件进行合并之后,所述方法还包括:记录各文件在合并后的大文件中的位置。较佳地,所述将合并后的大文件发给HDFS之后,所述方法还包括:将本地系统中已经进行合并的各文件删除,并将被删除文件对应的状态标识标记为已合并。本专利技术提供的一种分布式数据读取方法,所述方法包括:小文件处理模块根据客户端发来的文件读取请求,判断所述文件的数据量是否小于预设的数据量门限;当所述文件的数据量小于预设的数据量门限时,判断所述文件是否被合并;当所述文件未被合并,从本地系统中读取所述文件;当所述文件被合并,从Hadoop分布式文件系统HDFS中读取所述文件。较佳地,所述判断所述文件的数据量是否小于预设的数据量门限为:根据数据量记录信息,判断所述文件的数据量是否小于预设的数据量门限。较佳地,所述从Hadoop分布式文件系统HDFS中读取所述文件为:从HDFS中读取包含所述文件的大文件,根据位置记录信息从大文件中读取所述文件;较佳地,所述判断所述文件是否被合并为,根据所述文件对应的状态标识判断所述文件是否被合并,当所述状态标识为未合并表示所述文件未被合并;当所述状态标识为已合并表示所述文件被合并。本专利技术提供的一种小文件处理模块,所述模块包括:文件接收单元,用于接收客户端上传的文件;文件存储单元,用于当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给Hadoop分布式文件系统HDFS。本专利技术提供的一种小文件处理模块,所述模块包括:数据量判断单元,用于根据客户端发来的文件读取请求,判断所述文件的数据量是否小于预设的数据量门限;状态判断单元,用于当所述文件的数据量小于预设的数据量门限时,判断所述文件是否被合并;文件读取单元,当所述文件未被合并,从本地系统中读取所述文件;当所述文件被合并,从Hadoop分布式文件系统HDFS中读取所述文件。本专利技术提供的一种分布式数据存取系统,所述系统包括:小文件处理模块,用于接收客户端上传的文件;当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给Hadoop分布式文件系统HDFS;本地系统,用于保存数据量小于预设的数据量门限的文件;HDFS,用于保存合并后的大文件。本专利技术提供的一种分布式数据存取系统,所述读取包括:小文件处理模块,用于根据客户端发来的文件读取请求,判断所述文件的数据量是否小于预设的数据量门限;当所述文件的数据量小于预设的数据量门限时,判断所述文件是否被合并;当所述文件未被合并,从本地系统中读取所述文件;当所述文件被合并,从Hadoop分布式文件系统HDFS中读取所述文件;本地系统,用于保存数据量小于预设的数据量门限的文件;HDFS,用于保存合并后的大文件。由上可知,本专利技术的技术方案包括:小文件处理模块接收客户端上传的文件;当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给HDFS。由此,通过将小文件保存在本地系统,将合并后的大文件发给HDFS保存,可以减少缓存映射的建立数量,从而能够在大量存储小文件时,节省占用主节点的内存,提高HDFS存取数据的效率。附图说明图1为本专利技术分布式数据存储方法的实现流程示意图;图2为本专利技术分布式数据读取方法的实现流程示意图;图3为本专利技术提供的一种小文件处理模块的结构示意图;图4为本专利技术提供的另一种小文件处理模块的结构示意图;图5为本专利技术分布式数据存取系统的结构示意图;图6为本专利技术分布式数据存储方法的第一实施例的实现流程示意图;图7为本专利技术分布式数据读取方法的第一实施例的实现流程示意图。具体实施方式本专利技术提供的一种分布式数据存储方法,如图1所示,所述方法包括:步骤101、小文件处理模块接收客户端上传的文件;这里,所述小文件处理模块是在客户端和HDFS之间增加的一个装置,所述小文件处理模块可以异步处理小文件合并。步骤102、当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;这里,所述数据量门限可以是64M,也可以根据实际情况设置。所述本地系统是指HDFS之外的存储空间。步骤103、当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给HDFS。这里,所述合并门限可以是64M,也可以根据实际情况设置。优选的,所述将所述文件保本文档来自技高网...
一种分布式数据存取方法、装置和系统

【技术保护点】
一种分布式数据存储方法,其特征在于,所述方法包括:小文件处理模块接收客户端上传的文件;当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本地系统;当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件进行合并,并将合并后的大文件发给Hadoop分布式文件系统HDFS。

【技术特征摘要】
1.一种分布式数据存储方法,其特征在于,所述方法包括:
小文件处理模块接收客户端上传的文件;
当判定所述文件的数据量小于预设的数据量门限时,将所述文件保存在本
地系统;
当本地系统存储的各文件的数据量之和达到预设的合并门限时,将各文件
进行合并,并将合并后的大文件发给Hadoop分布式文件系统HDFS。
2.根据权利要求1所述的方法,其特征在于,所述将所述文件保存在本地
系统之后,所述方法还包括:
记录所述文件的数据量。
3.根据权利要求1所述的方法,其特征在于,将各文件进行合并之后,所
述方法还包括:
记录各文件在合并后的大文件中的位置。
4.根据权利要求1所述的方法,其特征在于,所述将合并后的大文件发给
HDFS之后,所述方法还包括:
将本地系统中已经进行合并的各文件删除,并将被删除文件对应的状态标
识标记为已合并。
5.一种分布式数据读取方法,其特征在于,所述方法包括:
小文件处理模块根据客户端发来的文件读取请求,判断所述文件的数据量
是否小于预设的数据量门限;
当所述文件的数据量小于预设的数据量门限时,判断所述文件是否被合并;
当所述文件未被合并,从本地系统中读取所述文件;
当所述文件被合并,从Hadoop分布式文件系统HDFS中读取所述文件。
6.根据权利要求5所述的方法,其特征在于,所述判断所述文件的数据量
是否小于预设的数据量门限为:
根据数据量记录信息,判断所述文件的数据量是否小于预设的数据量门限。
7.根据权利要求5所述的方法,其特征在于,所述从Hadoop分布式文件
系统HDFS中读取所述文件为:
从HDFS中读取包含所述文件的大文件,根据位置记录信息从大文件中读
取所述文件。
8.根据权利要求5所述的方法,其特征在于,所述判断所述文件是否被合
并为,
根据所述文件对应的状态标识判断所述文件是否被合并,当所述状态标识
为未合并表示所述文...

【专利技术属性】
技术研发人员:陈昌
申请(专利权)人:深圳中兴网信科技有限公司
类型:发明
国别省市:广东;44

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

1