CN105430078B - 一种海量数据的分布式存储方法 - Google Patents
一种海量数据的分布式存储方法 Download PDFInfo
- Publication number
- CN105430078B CN105430078B CN201510791440.8A CN201510791440A CN105430078B CN 105430078 B CN105430078 B CN 105430078B CN 201510791440 A CN201510791440 A CN 201510791440A CN 105430078 B CN105430078 B CN 105430078B
- Authority
- CN
- China
- Prior art keywords
- file
- block
- map
- parts
- made available
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 title claims abstract description 34
- 238000000605 extraction Methods 0.000 claims abstract description 12
- 238000012544 monitoring process Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 2
- 238000009412 basement excavation Methods 0.000 abstract description 5
- 230000011218 segmentation Effects 0.000 abstract description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种海量数据的分布式存储方法,该方法包括:当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件;分别对每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件;分别对每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。本申请中,当接收到输入文件后,先对输入文件进行分割,并将分割后得到的多个块文件的特征信息提取出来,然后将具有相同特征信息的块文件归为一类,进而将每一类文件进行合并存储,由此实现了对多个块文件的特征信息的挖掘,进而实现了对数据合理高效的存储。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种海量数据的分布式存储方法。
背景技术
当前,随着网络应用的发展,网络中的数据资源不断地膨胀。数据库服务器一方面需要解决存储空间和访问速度等问题,另一方面也需要考虑对海量数据的挖掘处理,以实现对海量数据进行合理高效地存储。
然而,在现有技术中,海量数据的存储过程通常是粗放式存储,也即,在未加处理的情况下,按照接收到的数据文件的时间顺序依次对数据文件进行存储,这样显然会导致不同类型的数据混乱地挤在一起,从而使得后续对存储文件的访问过程造成严重不便。
综上所述可以看出,如何在数据存储之前预先对数据进行挖掘处理,以实现对数据合理高效的存储是目前亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种海量数据的分布式存储方法,通过在数据存储之前预先对数据进行挖掘处理,从而实现了对数据合理高效的存储。其具体方案如下:
一种海量数据的分布式存储方法,包括:
当获取到输入文件时,对所述输入文件进行分割处理,相应地得到N份块文件,N为正整数;
分别对所述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;
对所述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件,其中,M为不大于N的正整数;
分别对所述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对所述M份合并文件进行存储。
优选的,任一份块文件的文件大小为16MB至64MB中的任一数值。
优选的,所述对所述输入文件进行分割处理,相应地得到N份块文件的过程,包括:
利用MapReduce函数库,对所述输入文件进行分割,得到所述N份块文件。
优选的,所述分别对所述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息的过程,包括:
为所述N份块文件中的每一份块文件分配各自的Map任务,相应地得到N个Map任务;
利用所述N个Map任务中的每一个Map任务,从相应的块文件中提取出键值对,相应地得到N个键值对;其中,任一份块文件对应的键值对均包含该块文件的关键字以及相应的数值;
将每一份块文件对应的键值对中的关键字确定为该块文件的特征信息。
优选的,所述对所述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件的过程,包括:
将所述N个Map任务分配给Map工作机,以利用所述Map工作机对所述N个Map任务进行处理,得到相应的N个中间值;
将所述N个中间值不重复地写入所述Map工作机的本地硬盘上的P个分区,P为正整数,并相应地记录每一个中间值所对应的存放位置信息;
根据每一个中间值所对应的存放位置信息,对所述P个分区上存储的中间值进行远程读取操作,并将读取到的中间值发送至Reduce工作机,以利用所述Reduce工作机将具有相同关键字的块文件所对应的中间值排序在一起,相应地得到M个排序后的文件,并将所述M个排序后的文件确定为所述M类文件。
优选的,所述Map工作机对任一个Map任务进行处理的过程,包括:
对与该Map任务对应的块文件进行数据输入处理,并将相应的键值对传递给预设的Map函数,以通过该Map函数获取相应的中间值,并将该中间值缓存至内存中。
优选的,所述分别对所述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件的过程,包括:
通过所述Reduce工作机,将所述M类文件中的每一类文件以及该类文件所对应的关键字发送至相应的Reduce函数,以利用Reduce函数对每一类文件进行文件合并处理,相应地得到所述M份合并文件。
优选的,在为所述N份块文件中的每一份块文件分配各自的Map任务,相应地得到所述N个Map任务之后,还包括:
对所述N个Map任务的有效性进行实时监测,当监测到任一Map任务失效后,重新执行该Map任务。
优选的,所述分布式存储方法,还包括:
对所述Map工作机的工作状态进行实时监测,得到相应的监测结果;并对所述监测结果进行实时显示。
优选的,所述分布式存储方法,还包括:
当监测到所述Map工作机失效时,将所述Map工作机当前正在处理的Map任务置为失效状态,并结束所述Map工作机的运作。
本发明中,当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件;分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件;分别对上述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。可见,本发明中,当接收到输入文件后,先对输入文件进行分割,并将分割后得到的多个块文件的特征信息提取出来,然后将具有相同特征信息的块文件归为一类,进而将每一类文件进行合并存储,由此实现了对多个块文件的特征信息的挖掘,进而实现了对数据合理高效的存储。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种海量数据的分布式存储方法流程图;
图2为本发明实施例公开的一种具体的海量数据的分布式存储方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种海量数据的分布式存储方法,参见图1所示,上述分布式存储方法包括:
步骤S11:当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件,N为正整数;
步骤S12:分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;
步骤S13:对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件,其中,M为不大于N的正整数;
步骤S14:分别对上述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。
其中,优选的,上述任一份块文件的文件大小为16MB至64MB中的任一数值。
本发明实施例中,当获取到输入文件时,对输入文件进行分割处理,相应地得到N份块文件;分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件;分别对上述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对上述M份合并文件进行存储。
可见,本发明实施例中,当接收到输入文件后,先对输入文件进行分割,并将分割后得到的多个块文件的特征信息提取出来,然后将具有相同特征信息的块文件归为一类,进而将每一类文件进行合并存储,由此实现了对多个块文件的特征信息的挖掘,进而实现了对数据合理高效的存储。
本发明实施例公开了一种具体的海量数据的分布式存储方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图2所示,上一实施例步骤S11中,对输入文件进行分割处理,相应地得到N份块文件的过程,具体包括:利用MapReduce函数库,对输入文件进行分割,得到N份块文件。
参见图2所示,上一实施例步骤S12中,分别对上述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息的过程,包括:
步骤S121:为上述N份块文件中的每一份块文件分配各自的Map任务,相应地得到N个Map任务;
步骤S122:利用上述N个Map任务中的每一个Map任务,从相应的块文件中提取出键值对,相应地得到N个键值对;其中,任一份块文件对应的键值对均包含该块文件的关键字以及相应的数值;
步骤S123:将每一份块文件对应的键值对中的关键字确定为该块文件的特征信息。
参见图2所示,上一实施例步骤S13中,对上述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件的过程,包括:
步骤S131:将上述N个Map任务分配给Map工作机,以利用Map工作机对上述N个Map任务进行处理,得到相应的N个中间值;需要说明的是,上述Map工作机可以是一台Map工作机,也可以是一台以上的Map工作机,本实施例为了方便阐述,并不对Map工作机的数量作进一步的限定。
步骤S132:将上述N个中间值不重复地写入Map工作机的本地硬盘上的P个分区,P为正整数,并相应地记录每一个中间值所对应的存放位置信息;
步骤S133:根据每一个中间值所对应的存放位置信息,对上述P个分区上存储的中间值进行远程读取操作,并将读取到的中间值发送至Reduce工作机,以利用Reduce工作机将具有相同关键字的块文件所对应的中间值排序在一起,相应地得到M个排序后的文件,并将该M个排序后的文件确定为上述的M类文件。需要说明的是,上述Reduce工作机的数量可以是一台,也可以是一台以上,本实施例为了方便阐述,并不对Reduce工作机的数量作进一步的限定。
其中,在上述步骤S131中,Map工作机对任一个Map任务进行处理的过程,具体包括:对与该Map任务对应的块文件进行数据输入处理,并将相应的键值对传递给预设的Map函数,以通过该Map函数获取相应的中间值,并将该中间值缓存至内存中。
参见图2所示,上一实施例步骤S14中,分别对M类文件中的每一类文件进行文件合并,相应地得到M份合并文件的过程,具体包括:通过上述Reduce工作机,将上述M类文件中的每一类文件以及该类文件所对应的关键字发送至相应的Reduce函数,以利用Reduce函数对每一类文件进行文件合并处理,相应地得到M份合并文件。
为了避免Map任务在被执行之前或在被执行的过程发生意外而导致数据保存不完整的情况,在为上述N份块文件中的每一份块文件分配各自的Map任务,相应地得到N个Map任务之后,还包括:对上述N个Map任务的有效性进行实时监测,当监测到任一Map任务失效后,重新执行该Map任务。
进一步的,本实施例中的分布式存储方法还可以包括:对上述Map工作机的工作状态进行实时监测,得到相应的监测结果;并对监测结果进行实时显示;当监测到上述Map工作机失效时,将上述Map工作机当前正在处理的Map任务置为失效状态,并结束该Map工作机的运作。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种海量数据的分布式存储方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种海量数据的分布式存储方法,其特征在于,包括:
当获取到输入文件时,对所述输入文件进行分割处理,相应地得到N份块文件,N为正整数;
分别对所述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息;
对所述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件,其中,M为不大于N的正整数;
分别对所述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件,并对所述M份合并文件进行存储;
其中,所述对所述输入文件进行分割处理,相应地得到N份块文件的过程,包括:利用MapReduce函数库,对所述输入文件进行分割,得到所述N份块文件;
另外,所述分别对所述N份块文件中的每一份块文件进行特征信息提取处理,相应地得到每一份块文件的特征信息的过程,包括:为所述N份块文件中的每一份块文件分配各自的Map任务,相应地得到N个Map任务;利用所述N个Map任务中的每一个Map任务,从相应的块文件中提取出键值对,相应地得到N个键值对;其中,任一份块文件对应的键值对均包含该块文件的关键字以及相应的数值;将每一份块文件对应的键值对中的关键字确定为该块文件的特征信息;
并且,所述对所述N份块文件中具有相同特征信息的块文件归为一类,相应地得到M类文件的过程,包括:将所述N个Map任务分配给Map工作机,以利用所述Map工作机对所述N个Map任务进行处理,得到相应的N个中间值;将所述N个中间值不重复地写入所述Map工作机的本地硬盘上的P个分区,P为正整数,并相应地记录每一个中间值所对应的存放位置信息;根据每一个中间值所对应的存放位置信息,对所述P个分区上存储的中间值进行远程读取操作,并将读取到的中间值发送至Reduce工作机,以利用所述Reduce工作机将具有相同关键字的块文件所对应的中间值排序在一起,相应地得到M个排序后的文件,并将所述M个排序后的文件确定为所述M类文件;
进一步的,在为所述N份块文件中的每一份块文件分配各自的Map任务,相应地得到所述N个Map任务之后,还包括:对所述N个Map任务的有效性进行实时监测,当监测到任一Map任务失效后,重新执行该Map任务。
2.根据权利要求1所述的海量数据的分布式存储方法,其特征在于,任一份块文件的文件大小为16MB至64MB中的任一数值。
3.根据权利要求1所述的海量数据的分布式存储方法,其特征在于,所述Map工作机对任一个Map任务进行处理的过程,包括:
对与该Map任务对应的块文件进行数据输入处理,并将相应的键值对传递给预设的Map函数,以通过该Map函数获取相应的中间值,并将该中间值缓存至内存中。
4.根据权利要求3所述的海量数据的分布式存储方法,其特征在于,所述分别对所述M类文件中的每一类文件进行文件合并,相应地得到M份合并文件的过程,包括:
通过所述Reduce工作机,将所述M类文件中的每一类文件以及该类文件所对应的关键字发送至相应的Reduce函数,以利用Reduce函数对每一类文件进行文件合并处理,相应地得到所述M份合并文件。
5.根据权利要求1所述的海量数据的分布式存储方法,其特征在于,还包括:
对所述Map工作机的工作状态进行实时监测,得到相应的监测结果;并对所述监测结果进行实时显示。
6.根据权利要求5所述的海量数据的分布式存储方法,其特征在于,还包括:
当监测到所述Map工作机失效时,将所述Map工作机当前正在处理的Map任务置为失效状态,并结束所述Map工作机的运作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510791440.8A CN105430078B (zh) | 2015-11-17 | 2015-11-17 | 一种海量数据的分布式存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510791440.8A CN105430078B (zh) | 2015-11-17 | 2015-11-17 | 一种海量数据的分布式存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105430078A CN105430078A (zh) | 2016-03-23 |
CN105430078B true CN105430078B (zh) | 2019-03-15 |
Family
ID=55508014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510791440.8A Active CN105430078B (zh) | 2015-11-17 | 2015-11-17 | 一种海量数据的分布式存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105430078B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108304142B (zh) * | 2017-12-29 | 2021-10-15 | 华为技术有限公司 | 一种数据管理方法和装置 |
CN111490795B (zh) * | 2020-05-25 | 2021-09-24 | 南京大学 | 一种面向中间值长度异构的编码MapReduce方法 |
CN112632075A (zh) * | 2020-12-25 | 2021-04-09 | 创新科技术有限公司 | 集群元数据的存储、读取方法和装置 |
CN113515495B (zh) * | 2021-04-14 | 2024-03-19 | 暨南大学 | 数据文件分配方法及装置、智能设备和计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214184A (zh) * | 2010-04-07 | 2011-10-12 | 腾讯科技(深圳)有限公司 | 分布式计算系统的中间文件处理装置及方法 |
CN103077183A (zh) * | 2012-12-14 | 2013-05-01 | 北京普泽天玑数据技术有限公司 | 一种分布式顺序表的数据导入方法及其系统 |
WO2014180411A1 (zh) * | 2013-12-17 | 2014-11-13 | 中兴通讯股份有限公司 | 分布式索引的生成方法及装置 |
-
2015
- 2015-11-17 CN CN201510791440.8A patent/CN105430078B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214184A (zh) * | 2010-04-07 | 2011-10-12 | 腾讯科技(深圳)有限公司 | 分布式计算系统的中间文件处理装置及方法 |
CN103077183A (zh) * | 2012-12-14 | 2013-05-01 | 北京普泽天玑数据技术有限公司 | 一种分布式顺序表的数据导入方法及其系统 |
WO2014180411A1 (zh) * | 2013-12-17 | 2014-11-13 | 中兴通讯股份有限公司 | 分布式索引的生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105430078A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625401B (zh) | 基于集群文件系统的数据备份方法、装置及可读存储介质 | |
US9208137B2 (en) | Method to preview an undo/redo list | |
CN105430078B (zh) | 一种海量数据的分布式存储方法 | |
US10523538B2 (en) | User interface that provides a proactive monitoring tree with severity state sorting | |
US9142049B2 (en) | Proactive monitoring tree providing distribution stream chart with branch overlay | |
CN103370691B (zh) | 管理缓冲器溢出状况 | |
CN101158954B (zh) | 一种在计算机存储中识别重复数据的方法 | |
CN104252452A (zh) | 数据管理的方法及装置 | |
CN106294008B (zh) | 一种数据恢复方法和装置 | |
CN103473277A (zh) | 文件系统的快照方法和装置 | |
CN106909595B (zh) | 一种数据迁移方法及装置 | |
CN103838787B (zh) | 一种对分布式数据仓库进行更新的方法和设备 | |
CN106815254A (zh) | 一种数据处理方法和装置 | |
US20170124490A1 (en) | Inclusion of time series geospatial markers in analyses employing an advanced cyber-decision platform | |
CN104915359A (zh) | 主题标签推荐方法及装置 | |
CN107832440A (zh) | 一种数据挖掘方法、装置、服务器及计算机可读存储介质 | |
US20180095719A1 (en) | Sorted linked list with a midpoint binary tree | |
CN105159925B (zh) | 一种数据库集群数据分配方法及系统 | |
CN110134646B (zh) | 知识平台服务数据存储与集成方法及系统 | |
CN104765875A (zh) | 一种旅客行为数据分布式处理方法及系统 | |
CN104239520B (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
CN107679133B (zh) | 一种实用于海量实时pmu数据的挖掘方法 | |
CN106201784B (zh) | 一种基于git的数据备份方法及系统 | |
CN107203554A (zh) | 一种分布式检索方法及装置 | |
CN104615697A (zh) | 一种网页层次记忆返回方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |