一种在键值库中进行分布式数据分析的方法

文档序号:6371229阅读:368来源:国知局
专利名称:一种在键值库中进行分布式数据分析的方法
技术领域
本发明一种在键值库中进行分布式数据分析的方法,属于数据处理技术领域。
背景技术
映射聚集技术是谷歌公司提出的一种并行计算框架和编程模型,与以往的并行计算方式不同,映射聚集是基于廉价的硬件环境设计,并且具有高吞吐量的计算系统,其开源的的映射聚集实现(即Hadoop)已经成为目前大数据处理的事实标准,目前IBM,微软,甲骨文等大型公司的大数据方案都基于它实现。映射聚集的出现为很多企业提供了一种廉价的大数据处理方式,降低了企业在海量数据下进行数据处理的成本,使得企业对海量数据进行分析处理成为可能,也为海量数据挖掘提供了便捷的形式。映射聚集的基本计算过程如图I所示。映射聚集的基本思想是计算伴随数据移 动,将计算过程简单的划分为映射和聚集两个过程,映射函数在数据所处的节点上完成初始计算,然后聚集函数将映射函数的计算结果通过网络拷贝到聚集任务的执行节点上进行最终结果的聚合,由于聚集函数的输入一般都比较少,所以系统造成的网络负担相对较少,在输入数据非常大的情况下有很大的吞吐量。在目前看映射聚集技术是一种高效的数据处理技术,非关系型数据库(即NoSQL)技术是一种非常高效、廉价的存储技术,但是两者却不能很好的融合。开源的映射聚集必须运行在分布式文件系统(其中Hadoop的分布式文件系统称作HDFS)上,在采用映射聚集框架和非关系型数据库之后,企业的大数据处理平台的结构如图2所示。通过图2可以看出为了支持映射聚集的运行,企业必须部署一个运行映射聚集框架的集群和一个分布式文件系统,这样浪费了计算和存储资源,也给企业带来了一定的维护成本,所以在非关系型数据库技术之上,提供对映射聚集的原生支持就显得非常必要了。另外一种常见的做法就是将非关系型数据库中的数据批量的导入文件系统中,利用分布式文件系统作为数据的输入,进行批量的数据分析,这种方案的缺陷是引入了一个导入的过程,此外需要搭建新的处理框架,给企业带来了不必要的负担。

发明内容
本发明的目的是提出一种在键值库中进行分布式数据分析的方法,消除目前开源的映射聚集框架对分布式文件系统的依赖,让映射聚集框架能够直接运行在非关系型数据库上或者键值库存储上,为键值库存储中的数据分析提供一种原生的工具。本发明提出的在键值库中进行分布式数据分析的方法,包括以下步骤(I)将键值库中与一个哈希范围相对应的数据作为一个数据块,每个数据块有多个相同的副本,多个副本分别存储在不同的计算机上;( 2 )从上述多个副本中随机选取一个副本,对该副本进行映射处理,得到多个中间数据块,将该中间数据块存储在进行映射处理的当前计算机上;(3)从当前计算机上读取多个中间数据块,对读取的多个中间数据块根据用户定义的排序方法进行排序,得到一个有序数据块,对该有序数据块进行聚集处理,得到一个输出文件,该输出文件存储在非关系型数据库上的文件系统中;(4)启动分布式数据分析过程时,将用户的分布式数据分析程序打包成一个代码包,将该代码包存储在上述非关系型数据库上的文件系统中,并将描述步骤(I)的数据块的信息存储在该文件系统中,数据块描述信息包括哈希范围的起点和终点以及每个副本所在的计算机位置;(5)中心计算机的任务分配组件根据每个数据块的描述信息,获得数据块的副本所在的计算机位置,并向该计算机分配任务,重复步骤(I) (3)。本发明提出在键值库中进行分布式数据分析的方法,其优点是消除了映射聚集框架对分布式文件系统的依赖,映射聚集框架运行需要的数据块的描述信息,可执行代码包都被存储在非关系型数据库上的文件系统中,这样企业在进行数据分析时只需要映射聚集框架和非关系型数据库两个组件,不再需要部署分布式文件系统,降低了资源消耗和维护成本。


图I是映射聚集的基本计算流程框图。图2是已有的分布式数据分析的结构示意图。图3是本发明方法的在键值库中进行分布式数据分析的结构示意图。
具体实施例方式本发明提出的在键值库中进行分布式数据分析的方法,使用时的系统结构示意图如图3所示,包括以下步骤(I)将键值库中与一个哈希范围相对应的数据作为一个数据块,每个数据块有多个相同的副本,多个副本分别存储在不同的计算机上;( 2 )从上述多个副本中随机选取一个副本,对该副本进行映射处理,得到多个中间数据块,将该中间数据块存储在进行映射处理的当前计算机上;(3)从当前计算机上读取多个中间数据块,对读取的多个中间数据块根据用户定义的排序方法进行排序,得到一个有序数据块,对该有序数据块进行聚集处理,得到一个输出文件,该输出文件存储在非关系型数据库上的文件系统中;(4)启动分布式数据分析过程时,将用户的分布式数据分析程序打包成一个代码包,将该代码包存储在上述非关系型数据库上的文件系统中,并将描述步骤(I)的数据块的信息存储在该文件系统中,数据块描述信息包括哈希范围的起点和终点以及每个副本所在的计算机位置;(5)中心计算机的任务分配组件根据每个数据块的描述信息,获得数据块的副本所在的计算机位置,并向该计算机分配任务,重复步骤(I) (3)。本发明基于开源的映射聚集框架(即Hadoop)进行设计,在充分分析了映射聚集的工作原理后,提出了在非关系型数据库上建立虚拟文件系统来替换映射聚集框架依赖的分布式文件系统的设计方案,映射聚集框架一共有四个组件构成输入格式化组件,它的主要功能是对输入数据进行格式化,在当前的分布式文件系统中,它实现方式是将文件中的数据切分成为一个个数据块,每一个块都与一个映射任务对应,这种实现方式的原因是文件本身是分块存储的,所以分块处理本身就与考虑到了数据存储的方式,所以从这一点来看映射聚集的处理方式是与存储相关的,将这个接口暴露出来也为以后解决其他的存储方式保留了一个扩展能力。输出格式化组件,它的主要功能是对输出数据进行格式化,对映射任务或者聚集任务输出到默认输出中的数据定向到具体的存储中,常用的是文件输出格式化,这也是基于当前分布式文件系统的实现。映射聚集组件,这个组件是映射聚集的核心组件,我们平时看到的映射聚集论文中的描述也就是这个组件的功能及架构,它的主要功能是核心计算框架包括映射任务和聚集任务的实现,执行引擎,任务调度算法的实现。分布式文件系统接口是对底层文件系统的一个抽象,它为映射聚集的运行提供基础支持,主要是作业的元信息包括数据块分割信息,运行可执行代码(一般都是jar包)等。
本发明的主要工作是在非关系型数据库(目前的实现是Cassandra)上构建了一个分布式文件系统,替换了开源的映射聚集框架中的分布式文件系统。这样将映射聚集框架需要的元数据信息(包括数据块分割信息,运行可执行代码)都存储在非关系型数据库上的文件系统中,就不在依赖以前的分布式文件系统了,改进后的系统结构如图3所示。在改进后的结构中用户的数据就存储在非关系型数据库中,用户只需要安装映射聚集组件(包括任务分配组件、映射或聚集处理组件),不再需要安装分布式文件系统组件。
权利要求
1.一种在键值库中进行分布式数据分析的方法,其特征在于该方法包括以下步骤 (1)将键值库中与一个哈希范围相对应的数据作为一个数据块,每个数据块有多个相同的副本,多个副本分别存储在不同的计算机上; (2)从上述多个副本中随机选取一个副本,对该副本进行映射处理,得到多个中间数据块,将该中间数据块存储在进行映射处理的当前计算机上; (3)从当前计算机上读取多个中间数据块,对读取的多个中间数据块根据用户定义的排序方法进行排序,得到一个有序数据块,对该有序数据块进行聚集处理,得到一个输出文件,该输出文件存储在非关系型数据库上的文件系统中; (4)启动分布式数据分析过程时,将用户的分布式数据分析程序打包成一个代码包,将该代码包存储在上述非关系型数据库上的文件系统中,并将描述步骤(I)的数据块的信息存储在该文件系统中,数据块描述信息包括哈希范围的起点和终点以及每个副本所在的计算机位置; (5)中心计算机的任务分配组件根据每个数据块的描述信息,获得数据块的副本所在的计算机位置,并向该计算机分配任务,重复步骤(I) (3)。
全文摘要
本发明一种在键值库中进行分布式数据分析的方法,属于数据处理技术领域。将键值库中与哈希范围对应的数据作为一个数据块,每个数据块有多个副本,选取一个副本进行映射处理,得到多个中间数据块,存储在当前计算机上;聚集处理从映射处理的计算机上读取中间数据块,进行排序后进行聚集处理,得到一个输出文件并存储在非关系型数据库上的文件系统中;启动时,用户将数据分析程序打包成一个代码包,将该代码包和数据块描述信息存储在文件系统中,中心计算机从文件系统中读取数据块描述信息,根据该信息分配任务。本方法消除了映射聚集框架对分布式文件系统的依赖,可执行代码包都被存储在非关系型数据库上的文件系统中,降低了资源消耗和维护成本。
文档编号G06F17/30GK102750353SQ20121019039
公开日2012年10月24日 申请日期2012年6月8日 优先权日2012年6月8日
发明者丁贵广, 朱妤晴, 杨义繁, 王建民, 衣国垒 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1