CN102750353B - 一种在键值库中进行分布式数据分析的方法 - Google Patents
一种在键值库中进行分布式数据分析的方法 Download PDFInfo
- Publication number
- CN102750353B CN102750353B CN201210190397.6A CN201210190397A CN102750353B CN 102750353 B CN102750353 B CN 102750353B CN 201210190397 A CN201210190397 A CN 201210190397A CN 102750353 B CN102750353 B CN 102750353B
- Authority
- CN
- China
- Prior art keywords
- data
- file system
- data block
- mapping
- stored
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明一种在键值库中进行分布式数据分析的方法,属于数据处理技术领域。将键值库中与哈希范围对应的数据作为一个数据块,每个数据块有多个副本,选取一个副本进行映射处理,得到多个中间数据块,存储在当前计算机上;聚集处理从映射处理的计算机上读取中间数据块,进行排序后进行聚集处理,得到一个输出文件并存储在非关系型数据库上的文件系统中;启动时,用户将数据分析程序打包成一个代码包,将该代码包和数据块描述信息存储在文件系统中,中心计算机从文件系统中读取数据块描述信息,根据该信息分配任务。本方法消除了映射聚集框架对分布式文件系统的依赖,可执行代码包都被存储在非关系型数据库上的文件系统中,降低了资源消耗和维护成本。
Description
技术领域
本发明一种在键值库中进行分布式数据分析的方法,属于数据处理技术领域。
背景技术
映射聚集技术是谷歌公司提出的一种并行计算框架和编程模型,与以往的并行计算方式不同,映射聚集是基于廉价的硬件环境设计,并且具有高吞吐量的计算系统,其开源的的映射聚集实现(即Hadoop)已经成为目前大数据处理的事实标准,目前IBM,微软,甲骨文等大型公司的大数据方案都基于它实现。映射聚集的出现为很多企业提供了一种廉价的大数据处理方式,降低了企业在海量数据下进行数据处理的成本,使得企业对海量数据进行分析处理成为可能,也为海量数据挖掘提供了便捷的形式。
映射聚集的基本计算过程如图1所示。映射聚集的基本思想是计算伴随数据移动,将计算过程简单的划分为映射和聚集两个过程,映射函数在数据所处的节点上完成初始计算,然后聚集函数将映射函数的计算结果通过网络拷贝到聚集任务的执行节点上进行最终结果的聚合,由于聚集函数的输入一般都比较少,所以系统造成的网络负担相对较少,在输入数据非常大的情况下有很大的吞吐量。
在目前看映射聚集技术是一种高效的数据处理技术,非关系型数据库(即NoSQL)技术是一种非常高效、廉价的存储技术,但是两者却不能很好的融合。开源的映射聚集必须运行在分布式文件系统(其中Hadoop的分布式文件系统称作HDFS)上,在采用映射聚集框架和非关系型数据库之后,企业的大数据处理平台的结构如图2所示。
通过图2可以看出为了支持映射聚集的运行,企业必须部署一个运行映射聚集框架的集群和一个分布式文件系统,这样浪费了计算和存储资源,也给企业带来了一定的维护成本,所以在非关系型数据库技术之上,提供对映射聚集的原生支持就显得非常必要了。
另外一种常见的做法就是将非关系型数据库中的数据批量的导入文件系统中,利用分布式文件系统作为数据的输入,进行批量的数据分析,这种方案的缺陷是引入了一个导入的过程,此外需要搭建新的处理框架,给企业带来了不必要的负担。
发明内容
本发明的目的是提出一种在键值库中进行分布式数据分析的方法,消除目前开源的映射聚集框架对分布式文件系统的依赖,让映射聚集框架能够直接运行在非关系型数据库上或者键值库存储上,为键值库存储中的数据分析提供一种原生的工具。
本发明提出的在键值库中进行分布式数据分析的方法,包括以下步骤:
(1)将键值库中与一个哈希范围相对应的数据作为一个数据块,每个数据块有多个相同的副本,多个副本分别存储在不同的计算机上;
(2)从上述多个副本中随机选取一个副本,对该副本进行映射处理,得到多个中间数据块,将该中间数据块存储在进行映射处理的当前计算机上;
(3)从当前计算机上读取多个中间数据块,对读取的多个中间数据块根据用户定义的排序方法进行排序,得到一个有序数据块,对该有序数据块进行聚集处理,得到一个输出文件,该输出文件存储在非关系型数据库上的文件系统中;
(4)启动分布式数据分析过程时,将用户的分布式数据分析程序打包成一个代码包,将该代码包存储在上述非关系型数据库上的文件系统中,并将描述步骤(1)的数据块的信息存储在该文件系统中,数据块描述信息包括哈希范围的起点和终点以及每个副本所在的计算机位置;
(5)中心计算机的任务分配组件根据每个数据块的描述信息,获得数据块的副本所在的计算机位置,并向该计算机分配任务,重复步骤(1)~(3)。
本发明提出在键值库中进行分布式数据分析的方法,其优点是消除了映射聚集框架对分布式文件系统的依赖,映射聚集框架运行需要的数据块的描述信息,可执行代码包都被存储在非关系型数据库上的文件系统中,这样企业在进行数据分析时只需要映射聚集框架和非关系型数据库两个组件,不再需要部署分布式文件系统,降低了资源消耗和维护成本。
附图说明
图1是映射聚集的基本计算流程框图。
图2是已有的分布式数据分析的结构示意图。
图3是本发明方法的在键值库中进行分布式数据分析的结构示意图。
具体实施方式
本发明提出的在键值库中进行分布式数据分析的方法,使用时的系统结构示意图如图3所示,包括以下步骤:
(1)将键值库中与一个哈希范围相对应的数据作为一个数据块,每个数据块有多个相同的副本,多个副本分别存储在不同的计算机上;
(2)从上述多个副本中随机选取一个副本,对该副本进行映射处理,得到多个中间数据块,将该中间数据块存储在进行映射处理的当前计算机上;
(3)从当前计算机上读取多个中间数据块,对读取的多个中间数据块根据用户定义的排序方法进行排序,得到一个有序数据块,对该有序数据块进行聚集处理,得到一个输出文件,该输出文件存储在非关系型数据库上的文件系统中;
(4)启动分布式数据分析过程时,将用户的分布式数据分析程序打包成一个代码包,将该代码包存储在上述非关系型数据库上的文件系统中,并将描述步骤(1)的数据块的信息存储在该文件系统中,数据块描述信息包括哈希范围的起点和终点以及每个副本所在的计算机位置;
(5)中心计算机的任务分配组件根据每个数据块的描述信息,获得数据块的副本所在的计算机位置,并向该计算机分配任务,重复步骤(1)~(3)。
本发明基于开源的映射聚集框架(即Hadoop)进行设计,在充分分析了映射聚集的工作原理后,提出了在非关系型数据库上建立虚拟文件系统来替换映射聚集框架依赖的分布式文件系统的设计方案,映射聚集框架一共有四个组件构成:
输入格式化组件,它的主要功能是对输入数据进行格式化,在当前的分布式文件系统中,它实现方式是将文件中的数据切分成为一个个数据块,每一个块都与一个映射任务对应,这种实现方式的原因是文件本身是分块存储的,所以分块处理本身就与考虑到了数据存储的方式,所以从这一点来看映射聚集的处理方式是与存储相关的,将这个接口暴露出来也为以后解决其他的存储方式保留了一个扩展能力。
输出格式化组件,它的主要功能是对输出数据进行格式化,对映射任务或者聚集任务输出到默认输出中的数据定向到具体的存储中,常用的是文件输出格式化,这也是基于当前分布式文件系统的实现。
映射聚集组件,这个组件是映射聚集的核心组件,我们平时看到的映射聚集论文中的描述也就是这个组件的功能及架构,它的主要功能是核心计算框架包括映射任务和聚集任务的实现,执行引擎,任务调度算法的实现。
分布式文件系统接口是对底层文件系统的一个抽象,它为映射聚集的运行提供基础支持,主要是作业的元信息包括数据块分割信息,运行可执行代码(一般都是jar包)等。
本发明的主要工作是在非关系型数据库(目前的实现是Cassandra)上构建了一个分布式文件系统,替换了开源的映射聚集框架中的分布式文件系统。这样将映射聚集框架需要的元数据信息(包括数据块分割信息,运行可执行代码)都存储在非关系型数据库上的文件系统中,就不在依赖以前的分布式文件系统了,改进后的系统结构如图3所示。
在改进后的结构中用户的数据就存储在非关系型数据库中,用户只需要安装映射聚集组件(包括任务分配组件、映射或聚集处理组件),不再需要安装分布式文件系统组件。
Claims (1)
1.一种在键值库中进行分布式数据分析的方法,其特征在于该方法包括以下步骤:
(1)将键值库中与一个哈希范围相对应的数据作为一个数据块,每个数据块有多个相同的副本,多个副本分别存储在不同的计算机上;
(2)从上述多个副本中随机选取一个副本,对该副本进行映射处理,得到多个中间数据块,将该多个中间数据块存储在进行映射处理的当前计算机上;
(3)从当前计算机上读取多个中间数据块,对读取的多个中间数据块根据用户定义的排序方法进行排序,得到一个有序数据块,对该有序数据块进行聚集处理,得到一个输出文件,该输出文件存储在非关系型数据库上的文件系统中;
(4)启动分布式数据分析过程时,将用户的分布式数据分析程序打包成一个代码包,将该代码包存储在上述非关系型数据库上的文件系统中,并将描述步骤(1)的数据块的信息存储在该文件系统中,数据块的信息包括哈希范围的起点和终点以及每个副本所在的计算机位置;
(5)中心计算机的任务分配组件根据每个数据块的描述信息,获得数据块的副本所在的计算机位置,并向该计算机分配任务,重复步骤(1)~(3)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210190397.6A CN102750353B (zh) | 2012-06-08 | 2012-06-08 | 一种在键值库中进行分布式数据分析的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210190397.6A CN102750353B (zh) | 2012-06-08 | 2012-06-08 | 一种在键值库中进行分布式数据分析的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750353A CN102750353A (zh) | 2012-10-24 |
CN102750353B true CN102750353B (zh) | 2014-04-16 |
Family
ID=47030538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210190397.6A Active CN102750353B (zh) | 2012-06-08 | 2012-06-08 | 一种在键值库中进行分布式数据分析的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102750353B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2924587A4 (en) * | 2012-12-31 | 2015-12-02 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR DATA PROCESSING |
CN105354250A (zh) * | 2015-10-16 | 2016-02-24 | 浪潮(北京)电子信息产业有限公司 | 一种面向云存储的数据存储方法及装置 |
CN109542892B (zh) * | 2018-10-19 | 2020-10-23 | 北京全路通信信号研究设计院集团有限公司 | 一种实时数据库的关系化实现方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426609A (zh) * | 2011-12-28 | 2012-04-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于MapReduce编程架构的索引生成方法和装置 |
CN102479217A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库中实现计算均衡的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7756919B1 (en) * | 2004-06-18 | 2010-07-13 | Google Inc. | Large-scale data processing in a distributed and parallel processing enviornment |
US8024545B2 (en) * | 2007-10-19 | 2011-09-20 | Inha-Industry Partnership Institute | Efficient prefetching and asynchronous writing for flash memory |
US9244838B2 (en) * | 2008-12-31 | 2016-01-26 | Teradata Us, Inc. | System, method, and computer-readable medium for grouping database level object access counts per processing module in a parallel processing system |
-
2012
- 2012-06-08 CN CN201210190397.6A patent/CN102750353B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102479217A (zh) * | 2010-11-23 | 2012-05-30 | 腾讯科技(深圳)有限公司 | 一种分布式数据仓库中实现计算均衡的方法及装置 |
CN102426609A (zh) * | 2011-12-28 | 2012-04-25 | 厦门市美亚柏科信息股份有限公司 | 一种基于MapReduce编程架构的索引生成方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102750353A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902593B (zh) | 一种数据迁移的方法和装置 | |
CN103761080B (zh) | 一种基于SQL的MapReduce作业生成方法及系统 | |
CN103077183B (zh) | 一种分布式顺序表的数据导入方法及其系统 | |
WO2018099299A1 (zh) | 一种图数据处理的方法、装置及系统 | |
US10176236B2 (en) | Systems and methods for a distributed query execution engine | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
CN102567312A (zh) | 一种基于分布式并行计算框架的机器翻译方法 | |
CN105677812A (zh) | 一种数据查询方法及数据查询装置 | |
US20130111451A1 (en) | Program Log Record Optimization | |
CN103930875A (zh) | 用于加速业务数据处理的软件虚拟机 | |
US10268741B2 (en) | Multi-nodal compression techniques for an in-memory database | |
KR20130101548A (ko) | 분산 환경들에서 신뢰도의 개선 | |
CN107870949B (zh) | 数据分析作业依赖关系生成方法和系统 | |
CN104036029A (zh) | 大数据一致性对比方法和系统 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN102750353B (zh) | 一种在键值库中进行分布式数据分析的方法 | |
CN104834650A (zh) | 一种有效查询任务生成方法及系统 | |
CN101789944B (zh) | 多功能电能表通信协议栈的开发系统 | |
Singh et al. | Spatial data analysis with ArcGIS and MapReduce | |
CN110134646B (zh) | 知识平台服务数据存储与集成方法及系统 | |
CN103064991A (zh) | 一种海量数据聚类方法 | |
CN111813739A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN106575296B (zh) | 用于托管的分析的动态n维立方体 | |
CN112783989A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |