CN103023992A - 海量数据的分布式存储方法 - Google Patents
海量数据的分布式存储方法 Download PDFInfo
- Publication number
- CN103023992A CN103023992A CN2012104939359A CN201210493935A CN103023992A CN 103023992 A CN103023992 A CN 103023992A CN 2012104939359 A CN2012104939359 A CN 2012104939359A CN 201210493935 A CN201210493935 A CN 201210493935A CN 103023992 A CN103023992 A CN 103023992A
- Authority
- CN
- China
- Prior art keywords
- working machine
- reduce
- mass data
- distributed storage
- storage method
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种海量数据的分布式存储方法,包括分割、指派Map/Reduce任务、读取、本地写入、远程读取、写入、完成所有的Map/Reduce任务,主控程序激活用户程序等步骤。本方法能够对海量数据进行处理,具有对软硬件和系统资源需求低、占用率也低的特点。
Description
技术领域
本发明属于云计算技术领域,具体涉及海量数据的存储技术。
背景技术
Clouding技术引起了一场IT产业界技术革命,为IT行业指明了未来发展的方向。云计算服务被各国政府视为国家软件产业发展的新契机。业内外人士对其发展情况和实用价值都表现出非常的关注。
对于海量数据而言,Database Server的CPU、IO吞吐等性能都将面临严峻的考验,由于网络资源迅速的不断膨胀,数据库服务器一方面要解决存储空间、访问速度及清除网络瓶颈等问题,另一方面还要完成所有数据的挖掘过程,这样的巨大压力是无法适应网络发展需求的。同时,随着每天实际应用中不得不继续增加的文本数据,这即使是针对已经完成预处理的文本资料的数据挖掘,也超出了现有小型处理机的承受范围。
处理海量数据主要面临以下问题:
1)过大的数据量可能会出现复杂的情况。如果有数十条或者数百条数据,进行人为的逐一检查处理是可行的,可一旦数据达到千万级别,甚至过亿,便不再可能进行人为处理了,必须借助外力进行处理,如工具或者程序,尤其海量数据中复杂情况的出现率会更高。
2)对软硬件和系统资源需要有高要求及高占用率。处理海量数据,除了需要方法好,合理的使用工具和分配系统资源也很重要。一般情况,处理的数据在TB级以上,则需要使用小型机,不过,在算法优异并加大CPU和内存的前提下,也可以考虑使用个人计算机。
3)要求性能优异的算法。有优异的算法才能提高对海量数据的处理效率。优秀的程序代码对处理数据有着至关重要的作用,特别是在进行复杂数据处理时,优秀的代码可以事半功倍。算法优异的良好程序代码,还应具有优秀的处理流程及异常处理机制等。
本发明针对上述技术问题提出一种分布式存储海量数据的方法。
发明内容
本发明提供一种海量数据的分布式存储方法,包括下列步骤:
步骤1,分割,首先,输入文件被用户程序中的MapReduce函数库分割成M块,然后进行程序拷贝。
步骤2,指派Map/Reduce任务。
步骤3,读取,Master给工作机分配任务,被分配了Map任务的工作机处理输入块的相关工作。
步骤4,本地写入,这些缓冲到内存的中间值将定时写入本地硬盘,使用分区函数分割成多个区域。
步骤5,远程读取,当Reduce工作机接收到中间对的位置时,Master调用远程过程从Map工作机的本地硬盘上读取缓冲的中间数据。
步骤6,写入,依照每一个由唯一的中间关键字对应的中间数据的序列情况,Reduce工作机发送该关键字和对应的中间数据给用户的Reduce函数,经Reduce函数处理后所得结果输出到一个最终的输出文件。
步骤7,完成所有的Map/Reduce任务,主控程序激活用户程序。
其中步骤1中每块文件大概在16M到64MB之间。
步骤2中程序由一个主控程序Master和作为主控程序来分配工作的Worker(工作机)组成。Master分配这些Map/Reduce任务到选择空闲的工作机上。
步骤3中工作机处理输入块的相关工作指的是数据的输入及处理。
其中步骤4中由Maser将接收那些在本地磁盘的数据数列的存放位置信息,由Reduce工作机负责接收这些信息。
步骤5中Reduce工作机读取这些中间值后,它就按照key是否相同来进行排序,将相同key的值排序在一起。
本方法能够对海量数据进行处理,具有对软硬件和系统资源需求低、占用率也低的特点。
附图说明
图1为分布式算法流程图。
具体实施方式
目前针对海量数据的存储来说,支持分布式处理的分布式软件系统可以在由通信网络互联的多处理机体系结构上执行任务而被广泛采用。分布式软件系统由分布式操作系统、分布式程序设计语言及其编译系统、分布式文件系统和分布式数据库系统等部分组成。分布式系统与并行系统类似,为了方便处理任务,将具有大量复杂计算的任务分割成若干个相对小计算量任务进行处理,从而得到最后的计算结果。但与并行系统仍然有不同之处,对分布式系统而言,有联系的各个任务均分开处理,这样各个任务之间几乎不会相互有影响,比如一个任务包为得到处理结果或者处理结果发生错误,下一个任务包仍然可以正常运行。因此,分布式系统对实时性的要求较低,并且存在一定量的计算错误也是允许的。
参见图1,本发明提供一种分布式处理海量数据存储的算法,包括以下步骤:
步骤1,分割,首先,输入文件被用户程序中的MapReduce函数库分割成M块,每块大概在16M到64MB之间,然后进行程序拷贝。
步骤2,指派Map/Reduce任务,程序由一个主控程序Master和作为主控程序来分配工作的Worker(工作机)组成。Master分配这些Map/Reduce任务到选择空闲的工作机上。
步骤3,读取,Master给工作机分配任务,被分配了Map任务的工作机处理输入块的相关工作(数据的输入及处理),而且<key,value>对被传递给用户指定的Map函数,而由此函数产生的中间值对暂时存放到内存中。
步骤4,本地写入,这些缓冲到内存的中间值将定时写入本地硬盘,使用分区函数分割成多个区域。Maser将接收那些在本地磁盘的数据数列的存放位置信息,由Reduce工作机负责接收这些信息。
步骤5,远程读取,当Reduce工作机接收到中间对的位置时,Master调用远程过程从Map工作机的本地硬盘上读取缓冲的中间数据。Reduce工作机读取这些中间值后,它就按照key是否相同来进行排序,将相同key的值排序在一起。使用外排序来缓解中间值过于复杂庞大的情况。
步骤6,写入,依照每一个由唯一的中间关键字对应的中间数据的序列情况,Reduce工作机发送该关键字和对应的中间数据给用户的Reduce函数,经Reduce函数处理后所得结果输出到一个最终的输出文件。
步骤7,完成所有的Map/Reduce任务,主控程序激活用户程序。
为了在成百上千台机器上使用上述分布式处理海量数据存储的算法,如果Master失效,在主控程序中会定期设置checkpoint,并导出数据。这样,当某个任务失效的时候,便可以选择从最近的一个checkpoint开始恢复数据并重新执行该任务。不过,由于Master的唯一性,当Master失效后,只能终止运行整个MapReduce程序,并重新执行。如果work失效,Master会通过定期ping各个工作机来检测它们的工作状态。如果工作机失效,则工作机会没有回答,这时便结束对该工作机的任务调度,并将正在该工作机上处理的Map/Reduce任务设置重新设置为空闲状态,以便供Master重新调度。
以上通过图示和说明提出了本发明的描述,上述举例,并非穷举,本领域的普通技术人员可以在本发明的精神和范围内作出改进和变形。
Claims (6)
1.一种海量数据的分布式存储方法,包括下列步骤:
步骤1,分割,首先,输入文件被用户程序中的MapReduce函数库分割成M块,然后进行程序拷贝;
步骤2,指派Map/Reduce任务;
步骤3,读取,Master给工作机分配任务,被分配了Map任务的工作机处理输入块的相关工作;
步骤4,本地写入,这些缓冲到内存的中间值将定时写入本地硬盘,使用分区函数分割成多个区域;
步骤5,远程读取,当Reduce工作机接收到中间对的位置时,Master调用远程过程从Map工作机的本地硬盘上读取缓冲的中间数据;
步骤6,写入,依照每一个由唯一的中间关键字对应的中间数据的序列情况,Reduce工作机发送该关键字和对应的中间数据给用户的Reduce函数,经Reduce函数处理后所得结果输出到一个最终的输出文件;
步骤7,完成所有的Map/Reduce任务,主控程序激活用户程序。
2.如权利要求1所述的海量数据的分布式存储方法,其中步骤1中每块文件大概在16M到64MB之间。
3.如权利要求1所述的海量数据的分布式存储方法,步骤2中程序由一个主控程序Master和作为主控程序来分配工作的Worker(工作机)组成,Master分配这些Map/Reduce任务到选择空闲的工作机上。
4.如权利要求1所述的海量数据的分布式存储方法,步骤3中工作机处理输入块的相关工作指的是数据的输入及处理。
5.如权利要求1所述的海量数据的分布式存储方法,其中步骤4中由Maser将接收那些在本地磁盘的数据数列的存放位置信息,由Reduce工作机负责接收这些信息。
6.如权利要求1所述的海量数据的分布式存储方法,步骤5中Reduce工作机读取这些中间值后,它就按照key是否相同来进行排序,将相同key的值排序在一起。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104939359A CN103023992A (zh) | 2012-11-28 | 2012-11-28 | 海量数据的分布式存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104939359A CN103023992A (zh) | 2012-11-28 | 2012-11-28 | 海量数据的分布式存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103023992A true CN103023992A (zh) | 2013-04-03 |
Family
ID=47972116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104939359A Pending CN103023992A (zh) | 2012-11-28 | 2012-11-28 | 海量数据的分布式存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103023992A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598321A (zh) * | 2015-02-11 | 2015-05-06 | 浪潮集团有限公司 | 一种智能大数据处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
US20090307421A1 (en) * | 2008-06-06 | 2009-12-10 | Pivot3 | Method and system for distributed raid implementation |
CN101950297A (zh) * | 2010-09-10 | 2011-01-19 | 北京大学 | 一种海量语义数据的存储和查询方法及装置 |
CN102045389A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种基于osgi的分布式数据存储方法 |
-
2012
- 2012-11-28 CN CN2012104939359A patent/CN103023992A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
US20090307421A1 (en) * | 2008-06-06 | 2009-12-10 | Pivot3 | Method and system for distributed raid implementation |
CN101950297A (zh) * | 2010-09-10 | 2011-01-19 | 北京大学 | 一种海量语义数据的存储和查询方法及装置 |
CN102045389A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种基于osgi的分布式数据存储方法 |
Non-Patent Citations (1)
Title |
---|
JEFFREY DEAN, SANJAY GHEMAWAT: "MapReduce: Simplified Data Processing on Large Clusters", 《COMMUNICATIONS OF THE ACM》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598321A (zh) * | 2015-02-11 | 2015-05-06 | 浪潮集团有限公司 | 一种智能大数据处理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014262240B2 (en) | Entity resolution from documents | |
CN102591909B (zh) | 在去重复存储系统中提供增强的可扩展性的系统及方法 | |
US9697277B2 (en) | Stratified sampling using adaptive parallel data processing | |
US8224825B2 (en) | Graph-processing techniques for a MapReduce engine | |
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
CN110716802B (zh) | 一种跨集群的任务调度系统及方法 | |
CN103902702A (zh) | 一种数据存储系统和存储方法 | |
CN107273542B (zh) | 高并发数据同步方法及系统 | |
Liu et al. | Implementing a cloud platform for autonomous driving | |
US11221890B2 (en) | Systems and methods for dynamic partitioning in distributed environments | |
CN103020227A (zh) | 计算机设备中的数据处理方法和系统 | |
CA3009817A1 (en) | Systems and methods for caching task execution | |
US10162830B2 (en) | Systems and methods for dynamic partitioning in distributed environments | |
CN116302574B (zh) | 一种基于MapReduce的并发处理方法 | |
CN103235811A (zh) | 一种数据存储方法及装置 | |
CN106155785B (zh) | 一种跨数据中心云计算系统的数据迁移方法 | |
US11042530B2 (en) | Data processing with nullable schema information | |
CN104239520B (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
US20160203032A1 (en) | Series data parallel analysis infrastructure and parallel distributed processing method therefor | |
CN103473368A (zh) | 一种基于计数排序的虚拟机实时迁移方法及系统 | |
CN105426119A (zh) | 一种存储设备及数据处理方法 | |
Conde | A MIP formulation for the minmax regret total completion time in scheduling with unrelated parallel machines | |
Wang et al. | Improved intermediate data management for mapreduce frameworks | |
WO2017113865A1 (zh) | 一种大数据增量计算方法和装置 | |
CN103023992A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130403 |