基于MapReduce的数据立方体分区优化算法研究.docVIP

基于MapReduce的数据立方体分区优化算法研究.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MapReduce的数据立方体分区优化算法研究.doc

基于MapReduce的数据立方体分区优化算法研究 【 摘 要 】 文章利用并行计算框架MapReduce,探索数据立方体的计算问题。数据立方体的计算存在两个关键问题,一个是计算时间的问题,另一个是立方体的体积问题。随着维度的增加,计算时间将呈现指数级的增长,立方体的体积也是如此。尽管MapReduce是一个优秀的并行计算框架,但在处理数据倾斜时,分区算法不够完善,导致一些计算任务时间过长,影响整个作业的完成时间。本文通过数据采样的方式,优化数据分区,实验结果表明,数据立方体的计算的性能明显提升。为解决数据立方体体积过大的问题,在Reduce阶段将最终的结果输出到基于NoSQL的HBase数据库进行存储,HBase方便水平扩展,同时也便于日后对数据立方体的查询。 【 关键词 】 数据立方体;数据分区;数据分析 【 文献标识码 】 A 1 引言 在互联网和电子商务领域,一些运营商以及电子商务平台提供商拥有大量的用户,并以云计算的方式向用户提供服务,这些服务响应用户的请求,在后端产生相应的数据,由于数据的集中储存以及用户的频繁请求,使得数据量呈现快速增长。在电子政务领域,一些政府部门根据自身信息化的发展水平及业务发展的需要,将信息化系统集中部署到省级机构,各地、市通过专网访问。这其中信息化化建设步伐更快的政府部门,在省级集中的基础上,实行全国数据的集中。在科学试验领域,科学家所观测的对象也产生了大量的数据,比如天文学当中利用天文望远镜,只需几天的时间,并能扫描半个天空。 就这些领域的数据产生速度而言,一些IT系统每天产生TB级的数据量,有的则多达PB级。有了大量的数据,就会产生数据挖掘的需求,包括对数据进行汇总分析。数据立方体能够很好地表达多维的结构化数据的汇总分析,传统的联机分析(OLAP)技术对于立方体的计算方法也相对较为成熟。传统的OLAP根据数据储存方式的不同,可分为两类:一类是ROLAP,以关系表进行多维数据的表示和存储;另一类是MOLAP,以多维数组进行多维数据的表示和存储。ROLAP计算数据立方体就是利用SQL中的group by语句对特定维度属性集合的所有子集分别集合,后来引入了Cube操作,一个Cube等价于多个Group by。MOLAP计算数据立方体时基于数组对数据进行集合,一种比较成熟的算法是多路数据聚集算法。 尽管基于传统的数据立方体的并行计算的算法比较成熟,但其不能直接应用于大数据的计算,因为由于这些大数据基于文件系统存储,而不是基于关系型数据库存储或者数组,而且,其数据量也大得多。 针对大数据的分析,Google提出了map-reduce的并行计算框架,结合上千台的廉价PC服务器,使得大数据的分析能够在很短时间之内完成,Hadoop是基于该编程模型的开源实现。 利用Hadoop进行数据立方体进行计算的研究相对较少,有的利用Hadoop计算数据立方体,但没有考虑数据的优化分区,直接采用Hadoop缺省的分区方式,这种方式存在缺陷,不能让高度倾斜的数据(少数几个键值出现的次数占据了非常大的比例)均匀分配给各个并行的计算任务,导致某些计算任务的输入数据过多,从而导致其完成时间滞后于其它计算任务,影响整个作业的完成时间。 本文给出了基于Map-Reduce计算数据立方体的算法以及分区优化算法,为让数据均匀分布到各个Reduce任务,采用数据抽样的方式决定采用何种分区方式,为并行计算立方体提供了一种新方式。 数据立方体有多种,完整数据立方体,冰山立方体,封闭立方体。冰山立方体和封闭立方体考虑了数据立方体的体积,减少不必要的存储。由于封闭立方体或者冰山立方体中的某一个子立方体很可能就是一个完整的立方体,因此,计算完整立方体的过程不可避免,而且,完整立方体也是其它立方体的基础。所以本文研究完整立方体的计算。 在此先介绍并行计算、数据立方体、Hadoop的相关概念,给出通用的计算数据立方体的Hadoop实现,在分析可能由于数据分布不平衡而导致的计算不平衡的基础上,设计基于抽样的分区算法。然后结合实验对算法进行分析。最后对当前工作进行总结,并提出未来的可能研究方向。 2 概念 2.1 数据立方体 实体关系模型主要应用于在关系型数据库中,这样的二维数据模型比较适合事务处理,但是不适合数据的在线分析。在数据仓库当中,往往需要从多个角度对数据进行分析,因此需要多维的数据模型,数据立方体就是用来描述多维数据模型的。 给定基本关系R(A1,A2,A3,…,An,M),由R产生的数据立方体是R的属性的所有的可能组合,n个属性产生2n个组合。A1,A2,A3,…,An为立方体的属性维,M为度量维,M是一个数字函数,描述数据以何种方式进行聚合或者计算。 取n 3,即基本关系R(A1,A2,A3,M)产生的立方体由以下分组构成: (A1

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档