一种海量数据的分布式存储方法

文档序号:9670891阅读:553来源:国知局
一种海量数据的分布式存储方法
【技术领域】
[0001]本发明涉及数据存储技术领域,特别涉及一种海量数据的分布式存储方法。
【背景技术】
[0002]当前,随着网络应用的发展,网络中的数据资源不断地膨胀。数据库服务器一方面需要解决存储空间和访问速度等问题,另一方面也需要考虑对海量数据的挖掘处理,以实现对海量数据进行合理高效地存储。
[0003]然而,在现有技术中,海量数据的存储过程通常是粗放式存储,也即,在未加处理的情况下,按照接收到的数据文件的时间顺序依次对数据文件进行存储,这样显然会导致不同类型的数据混乱地挤在一起,从而使得后续对存储文件的访问过程造成严重不便。
[0004]综上所述可以看出,如何在数据存储之前预先对数据进行挖掘处理,以实现对数据合理高效的存储是目前亟待解决的问题。

【发明内容】

[0005]有鉴于此,本发明的目的在于提供一种海量数据的分布式存储方法,通过在数据存储之前预先对数据进行挖掘处理,从而实现了对数据合理高效的存储。其具体方案如下:
[0006]—种海量数据的分布式存储方法,包括:
[0007]当获取到输入文件时,对所述输入文件进行分割处理,相应地得到N份块文件,N为正整数;
[0008]分别对所述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;
[0009]对所述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件,其中,M为不大于N的正整数;
[0010]分别对所述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对所述M份合并文件进行存储。
[0011]优选的,任一份块文件的文件大小为16MB至64MB中的任一数值。
[0012]优选的,所述对所述输入文件进行分割处理,相应地得到N份块文件的过程,包括:
[0013]利用MapReduce函数库,对所述输入文件进行分割,得到所述N份块文件。
[0014]优选的,所述分别对所述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息的过程,包括:
[0015]为所述N份块文件中的每一份块文件分配各自的Map任务,相应地得到N个Map任务;
[0016]利用所述N个Map任务中的每一个Map任务,从相应的块文件中提取出键值对,相应地得到N个键值对;其中,任一份块文件对应的键值对均包含该块文件的关键字以及相应的数值;
[0017]将每一份块文件对应的键值对中的关键字确定为该块文件的特征信息。
[0018]优选的,所述对所述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件的过程,包括:
[0019]将所述N个Map任务分配给Map工作机,以利用所述Map工作机对所述N个Map任务进行处理,得到相应的N个中间值;
[0020]将所述N个中间值不重复地写入所述Map工作机的本地硬盘上的P个分区,P为正整数,并相应地记录每一个中间值所对应的存放位置信息;
[0021]根据每一个中间值所对应的存放位置信息,对所述P个分区上存储的中间值进行远程读取操作,并将读取到的中间值发送至Reduce工作机,以利用所述Reduce工作机将具有相同关键字的块文件所对应的中间值排序在一起,相应地得到M个排序后的文件,并将所述M个排序后的文件确定为所述M类文件。
[0022]优选的,所述Map工作机对任一个Map任务进行处理的过程,包括:
[0023]对与该Map任务对应的块文件进行数据输入处理,并将相应的键值对传递给预设的Map函数,以通过该Map函数获取相应的中间值,并将该中间值缓存至内存中。
[0024]优选的,所述分别对所述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件的过程,包括:
[0025]通过所述Reduce工作机,将所述M类文件中的每一类文件以及该类文件所对应的关键字发送至相应的Reduce函数,以利用Reduce函数对每一类文件进行文件合并处理,相应地得到所述M份合并文件。
[0026]优选的,在为所述N份块文件中的每一份块文件分配各自的Map任务,相应地得到所述N个Map任务之后,还包括:
[0027]对所述N个Map任务的有效性进行实时监测,当监测到任一 Map任务失效后,重新执行该Map任务。
[0028]优选的,所述分布式存储方法,还包括:
[0029]对所述Map工作机的工作状态进行实时监测,得到相应的监测结果;并对所述监测结果进行实时显示。
[0030]优选的,所述分布式存储方法,还包括:
[0031]当监测到所述Map工作机失效时,将所述Map工作机当前正在处理的Map任务置为失效状态,并结束所述Map工作机的运作。
[0032]本发明中,当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件;分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件;分别对上述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。可见,本发明中,当接收到输入文件后,先对输入文件进行分割,并将分割后得到的多个块文件的特征信息提取出来,然后将具有相同特征信息的块文件归为一类,进而将每一类文件进行合并存储,由此实现了对多个块文件的特征信息的挖掘,进而实现了对数据合理高效的存储。
【附图说明】
[0033]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0034]图1为本发明实施例公开的一种海量数据的分布式存储方法流程图;
[0035]图2为本发明实施例公开的一种具体的海量数据的分布式存储方法流程图。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]本发明实施例公开了一种海量数据的分布式存储方法,参见图1所示,上述分布式存储方法包括:
[0038]步骤Sll:当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件,N为正整数;
[0039]步骤S12:分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;
[0040]步骤S13:对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件,其中,M为不大于N的正整数;
[0041]步骤S14:分别对上述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。
[0042]其中,优选的,上述任一份块文件的文件大小为16MB至64MB中的任一数值。
[0043]本发明实施例中,当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件;分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件;分别对上述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。
[0044]可见,本发明实施例中,当接收到输入文件后,先对输入文件进行分割,并将分割后得到的多个块文件的特征信息提取出来,然后将具有相同特征信息的块文件归为一类,进而将每一类文件进行合并存储,由此实现了对多个块文件的特征信息的挖掘,进而实现了对数据合理高效的存储。
[0045]本发明实施例公开了一种具体的海量数据的分布式存储方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
[0046]参见图2所示,上一实施例步骤Sll中,对输入文件进行分割处理,相应地得到N份块文件的过程,具体包括:利用MapReduce函数库,对输入文件进行分割,得到N份块文件。
[0047]参见图2所示,上一实施例步骤S12中,分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息的过程,包括:
[0048]步骤S121:为
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1