一种海量小文件存储及管理方法和系统的制作方法_2

文档序号:8498725阅读:来源:国知局
共享、通信、协作提供平台,从而完成大规模的计算任务。
[0056]如图4所示,本发明所述的名称节点服务网络系统主要包含以下模块:P2PNS解析器、P2PNS缓存层和覆盖网络层。所述的P2PNS解析器模块用于对名称节点的数据存储信息进行管理,所述的P2PNS缓存层模块对经常用的数据进行缓存以提高访问效率,所述的覆盖网络层模块提供DHT和KBR服务。
[0057]DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法,在不需要服务器的情况下,每个DHT节点负责一定区域其他节点的路由,并存储网络中一部分数据,实现整个DHT网络的寻址和存储,主要提供2种方法:Get(key)和Put (Key,Value), Get (key)用于寻址,Put (Key,Value)用于存储。
[0058]KBR(key based route)服务提供的基于关键字的路由方法供其他NameNode查找。KBR服务采用了希尔伯特(Hilbert)曲线的数据连续性,支持资源的分层管理,提高查询效率、减轻网络负载。根据一定的路由算法把所有的P2P节点连接起来,每个节点都跟最近相邻的几个节点相连,并保存它们的信息作为路由表。这样所有的节点就构成了一个逻辑网络,任何一个节点都可以通过一定的中间节点作路由,到达目的节点,并且每一个节点都分配了一个全局唯一的ID值,路由时就是以目的节点的ID值作为关键字进行路由转发。同时对于任意的文件资源,通过资源定位算法,可以将文件定位到某个相应的节点上,然后通过逻辑网络的路由查找,找到相应节点,就可以进行文件的访问。
[0059]如图2所示,名称节点服务网络管理元数据的方法包括如下步骤:
[0060]步骤201、获取客户端提交的服务请求;
[0061]步骤202、根据所述服务请求的key值,查找缓存中是否有所述服务请求的数据信息,若有直接返回给客户端,否则定位所述服务请求到网络中的具体存储节点,并转发所述服务请求到具体NameNode节点;
[0062]步骤203、根据所述key值定位查询所述具体存储节点中文件节点信息并返回客户端。
[0063]所述key值是根据服务请求信息提取的数据进行Hash计算得到的。
[0064]如图3所示,一种存储海量小文件系统包括如下模块:
[0065]文件类型处理器。文件类型处理器主要的功能是根据查询文件的文件类型,分类出目标类型文件,并将目标文件索引进行分类,形成目标文件索引序列,供海量小文件解析器模块调用。
[0066]海量小文件解析器。本系统的核心组件,小文件解析器的功能是从文件类型处理器获得目标文件索引序列,使用多线程解析技术,对目标文件进行解析,提取出需要存储的小文件元数据信息,将提取的元数据存入缓存待数据合并器模块进行处理。
[0067]中间数据合并器。数据合并器即中间数据文件产生器,它是与小文件解析器相对应的一个功能模块。采用生产者-消费者模型,将小文件解析器看成生产者,数据合并器作为消费者。合并器定期的从缓存中获取数据信息,将其按照Hadoop平台中的默认Block块大小或指定的合并后大小进行文件合并,放入指定的目录中。
[0068]中间数据存储器。该模块定时的扫描目标文件夹,获得中间数据文件,将其放入Hadoop平台中,并对该中间数据文件进行备份。
[0069]分布式数据处理器。分布式数据处理器米用MapReduce编程模型的Map、Reduce函数。Map函数是按照规定的规则,对传入的中间数据文件进行分解处理,产生中间key/value数据序列,然后Reduce函数对这些中间key/value数据序列进行在分析、合并,最后将处理过的数据存入Hadoop平台中。
[0070]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的【具体实施方式】进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
【主权项】
1.一种海量小文件存储及管理方法,其特征在于,所述方法包括: 存储海量小文件,并将元数据写入名称节点服务网络; 名称节点服务网络管理元数据,实现对客户端访问请求响应。
2.根据权利要求1所述方法,其特征在于,所述存储海量小文件包括如下步骤: 步骤1、将海量小文件进行分类,生成所述元数据文件; 步骤2、利用MapReduce编程框架对数据块进行分解、处理得到数据值; 步骤3、将所述数据值分布存储在Hadoop平台中。
3.根据权利要求2所述方法,其特征在于,所述步骤I包括如下步骤: 步骤1-1、根据查询文件的文件类型,分类出目标类型文件,并将所述目标类型文件索引进行分类,形成目标文件索引序列; 步骤1-2、对目标文件进行解析,提取出需要存储的小文件元数据信息并存入缓存;步骤1-3、从缓存中获取所述小文件元数据信息,将其按照Hadoop平台中默认的块大小或指定大小进行文件合并,形成中间数据文件,即元数据文件,放入目标文件夹中。
4.根据权利要求2所述方法,其特征在于,所述步骤2采用MapReduce编程框架的Map、Reduce函数,所述Map函数对传入的中间数据文件进行分解处理,产生中间key/value数据序列,所述Reduce函数对所述中间key/value数据序列进行分析合并。
5.根据权利要求1所述方法,其特征在于,所述名称节点服务网络管理元数据包括如下步骤: 步骤1、获取客户端提交的服务请求; 步骤I1、根据所述服务请求的key值,查找缓存中是否有所述服务请求的数据信息,若有直接返回给客户端,否则定位所述服务请求到网络中的具体存储节点,并转发所述服务请求到具体NameNode节点; 步骤II1、KBR服务根据所述key值定位查询所述具体存储节点中文件节点信息并返回客户端。
6.根据权利要求5所述方法,其特征在于,所述key值是根据服务请求信息提取的数据进行Hash计算得到的。
7.根据权利要求5所述方法,其特征在于,所述KBR服务采用了希尔伯特曲线的数据连续性,提供基于关键字的路由方法供其他NameNode节点查找。
8.—种海量小文件存储及管理系统,其特征在于,所述系统包括 名称节点服务网络系统,用于名称节点服务网络管理元数据,实现对客户端访问请求响应; 海量小文件存储系统,用于存储海量小文件,并将元数据写入名称节点服务网络。
9.根据权利要求8所述系统,其特征在于,所述海量小文件存储系统包括: 文件类型处理器,根据查询文件的文件类型,分类出目标类型文件,并将目标文件索引进行分类,形成目标文件索引序列,供海量小文件解析器模块调用; 海量小文件解析器模块,从文件类型处理器获得目标文件索引序列,使用多线程解析技术,对目标文件进行解析,提取出需要存储的小文件元数据信息,将提取的元数据存入缓存; 中间数据合并器,将所述元数据按照Hadoop平台中的默认块大小或指定大小进行文件合并,放入指定的目标文件夹中; 中间数据存储器,定时的扫描目标文件夹,获得中间数据文件,将其放入Hadoop平台中,并对所述中间数据文件进行备份; 分布式数据处理器,采用MapReduce编程模型的Map、Reduce函数;Map函数是按照规定的规则,对传入的中间数据文件进行分解处理,产生中间key/value数据序列,然后Reduce函数对这些中间key/value数据序列进行在分析、合并,最后将处理过的数据存入Hadoop平台中。
10.根据权利要求8所述系统,其特征在于,所述名称节点服务网络系统包括: 解析器模块,提取客户端提交服务请求的key值; 缓存层模块,对经常用的数据进行缓存; 覆盖网络层,定位所述服务请求到网络中的具体存储节点,并转发所述服务请求到具体NameNode节点,根据所述key值定位查询所述具体存储节点中文件节点信息并返回客户端。
【专利摘要】本发明提供一种海量小文件存储及管理方法和系统,所述方法包括:存储海量小文件,并将元数据写入名称节点服务网络;名称节点服务网络管理元数据,实现对客户端访问请求响应。所述系统包括名称节点服务网络系统和海量小文件存储系统。本发明采用了对等计算技术,避免单点失效问题,提供基于关键字的路由查找方法,有效均衡网络负载,提高查询效率。
【IPC分类】G06F17-30
【公开号】CN104820717
【申请号】CN201510264347
【发明人】周爱华, 孟祥君, 何金陵, 丁杰, 戴江鹏, 杨佩, 饶玮, 潘森
【申请人】国网智能电网研究院, 国家电网公司, 国网山东省电力公司, 江苏省电力公司信息通信分公司
【公开日】2015年8月5日
【申请日】2015年5月22日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1