基于Hadoop及关系型数据库的海量数据分析研究

电信科学2010年第11期
3
潘松柏,张云勇,陈清金,等.云计算安全关键技术.电信科学,
2010,26(8)
4
童晓渝,张云勇,戴元顺.公众计算通信网架构及关键技术.通信学报,2010,31(8)
Using Cloud Computing Technology on Telecom OSS
Zhang Yunyong 1,Yang Guang 2,Chen Qingjin 1,Pan Songbai 1
(1.China Unicom Research Institute,Beijing 100048,China ;2.China Unicom System Integration Company,Beijing 100032,China )
Abstract This
paper analyzes the OSS issues ,from view of the industry chain of cloud computing,the introduction of multi -cloud computing technical feasibility,given the introduction of OSS principles and measures of cloud computing,and gives long -term goal of the program framework and the recent introduction of technology,and finally describes the risk about the cloud.Key words
cloud computing ,OSS ,IaaS ,VDC
(收稿日期:2010-10-05)
Hadoop 可以在大量廉价的硬件设备组成的集上运行应用程序,全面地将计算推向数据,在处理
海量数据方面具有一定的优势。本文对Hadoop 和关系数据库进行了比较分析,讨论了将二者结合构建海量数据分析系统的可行性,同时给出了实际的应用场景。
关键词
云计算;关系型数据库;海量数据
基于Hadoop 及关系型数据库的海量数据分析研究
莹,张云勇,徐
雷,房秉毅
(中国联通研究院北京100048)
摘要
1引言
在Web2.0时代,用户从信息的消费者变成了信息的
生产者,这种用户参与的模式使得互联网数据急剧增长,与互联网诞生时的1969年相比,2009年互联网数据
膨胀了200亿倍,而且未来的数据膨胀还在不断加剧。过去,计算能力被放置在个人计算机或服务器里,但越来越复杂的计算需求以及摩尔定律的消亡使得这样做的可能性在未来变得微乎其微。Google 每天都在吞下并处理整个互联网,最初,任何一个系统都无法实现这样的任
中国联通研究院云计算专栏
47
中国联通研究院云计算专栏
务。处理如此大规模的数据需求是从未遇到过的,它是随着互联网的发展而出现的。然而到了今天,很多行业都有类似的处理海量数据的需求,例如电信运营商的经营账务系统就面临这样的数据压力[1]。要存储和处理海量信息,不仅需要高带宽的网络基础设施,还需要处理海量数据的计算和存储的云计算平台,可靠地存储和处理PB级数据。在这样的背景下,海量数据存储及计算技术应运而生。
2Hadoop简介
Hadoop是Apache软件基金会管理的一个项目,它是Google开发的用来支持互联网级数据处理的MapReduce 编程模型和底层文件系统GFS的开源实现[2]。Hadoop可以在大量廉价的硬件设备组成的集上运行应用程序,为应用程序提供一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性的分布式系统。
Hadoop运行在计算集上,可以随时添加或删除Hadoop集中的服务器。Hadoop系统会检测和补偿任何服务器上出现的硬件或系统问题。也就是说,Hadoop是自愈系统。在出现系统变化或故障时,它仍可以运行大规模的高性能处理任务。香仁夏露
虽然Hadoop提供了数据存储和并行处理平台,但其真正的价值来自于这项技术的组件添加、交叉集成和定制实现。为此,Hadoop还提供了增强平台功能的子项目,具体如下[3]。
·Hadoop Common:原来的Hadoop Core。这是整个
Hadoop项目的核心,其他的Hadoop子项目都是在
其基础上发展而来的。
·Avro:Hadoop的RPC(远程过程调用)方案。
·Chukwa:管理大型分布式系统的数据采集系统。
·HBase:支持结构化数据存储的分布式数据库,是
Bigtable的开源实现。
·HDFS:向应用数据提供高吞吐量访问的分布式文
件系统,是GFS的开源实现。
·Hive:提供数据摘要和随机查询的数据仓库基础设施。
·MapReduce:用于对计算集上的大型数据集合进
金属板材加工
行分布式处理的软件框架,是Google的MapReduce
的开源实现。塑料薄膜连续封口机
·Pig:用于并行计算的高级数据流语言和执行框架。
·ZooKeeper:用于解决分布式系统中的一致性问题,
是Chubby的开源实现。
3Hadoop处理海量数据的优势分析
3.1Hadoop与关系型数据库的关系
在可靠性要求极高的超大规模计算环境中,MapReduce建立了一个清晰的抽象层,解决了大规模数据分析任务和底层系统支撑能力之间存在的矛盾和挑战。使用MapReduce模型,可以非常容易地实现并行数据处理任务,程序员不必考虑诸如同步、并发、硬件失败等底层技术细节。
关系型数据库的索引、关系以及事务处理等系统开销会限制系统的横向伸缩性,降低半结构化、非结构化数据的载入和批处理效率。所以,Google刻意舍弃了索引、关系以及事务处理等关系型数据库的特性,按照“Shared Nothing”的架构原则,从底层开始设计了一个全新的分布式文件系统。
有些关系型数据库系统也能提供MapReduce功能,允许程序员方便地创建比SQL更加有表达力的查询,而且不会给数据库系统本身带来额外的伸缩性限制。MapReduce 自身并不关心关系型数据库自身的横向伸缩性挑战。在处理海量数据的实际应用中,如果需要索引、关系以及事务保障,就要用到数据库,一个支持MapReduce的数据库比一个不支持MapReduce的数据库能提供表达力更强的查询。
3.2Hadoop无需替代关系型数据库及其他现有系统
没有必要用Hadoop替换现有系统,而应利用Hadoop 增强现有系统的处理能力。一方面,Hadoop从已有系统上接手一些海量数据处理问题来使得已有系统可以专注处理其设计用来做的事情,比如实时交易数据处理或交互式商业智能,这些海量数据处理问题包括但不限于同步数据吞吐、处理、交换大规模数据等。另一方面,Hadoop可以从任意多的数据源吞入任何类型的数据,可以是结构化数据,也可以是非结构化数据。来自多个数据源的数据可以按任何所需的方式进行合并或聚合,从而可以实现任意一个单一系统均无法处理的深度数据分析。另外,Hadoop的处理结果可以被传递给任意现有的与Hadoop无关的企业系统中做进一步处理。
3.3Hadoop与现有系统的交互
由于Hadoop允许以低成本的方式高效存储数据,并且其后可以以任意方式处理数据,所以,Hadoop经常会被作为多种数据源的数据池。因为Hadoop不处理索引和关
48
电信科学2010年第11
系,所以在Hadoop中存储数据的时候,就不用考虑将来如何分析这些数据。下面就Hadoop与数据库及日志系统的交互场景进行简要分析。
(1)Hadoop与数据库的交互
能源智能控制
Hadoop本身就支持通过JDBC从数据库中抽取数据。大部分数据库系统有批量导出、导入功能。无论是哪种情况,将整个数据库中的数据经常性地或者以增量的方式导入到Hadoop中来都是很容易的。由于数据库系统存储的数据减少,数据库系统的软件授权成本也会得到降低。图1是Hadoop与关系型数据库协同处理计算任务的应用场景。其中,关系型数据库系统用来处理实时数据,从而保证交易过程中的数据一致性。如果要求同一个数据库系统从大容量数据中生成复杂的分析报表是极其耗费计算资源的,降低了系统的性能和其处理实时数据工作的能力。Hadoop被设计用来存储海量数据、按任意方式处理海量数据以及按需向任意系统传递数据。数据可以经常性地从关系型数据库系统导出到Hadoop中,关系型数据库系统可以经过调整,专门用来处理交互式任务,而复杂的分析工作就可以按离线的方式交由Hadoop来完成,对实施系统没有任何影响。
(2)Hadoop与日志系统的交互
企业级的Web服务器等系统往往会生成海量的日志数据。这些日志数据通常是半结构化的,而且会随着时间发生变化。由于这些数据与关系型数据库并不能很好地匹配,而且在单一机器上需要很长时间进行处理,因此,对日志数据的处理往往比较困难。Hadoop可以非常方便地将海量日志信息从多个系统中提取出来用于后续的数据分析。
3.4各级用户如何使用Hadoop中的数据
Hadoop的一个突出特点是它可以同时将海量数据呈现给组织中的所有人,从而有助于各层次人员使用数据来做出更好的商业决策。
低voc当数据库管理员设计和优化数据库时,需要考虑到系统的方方面面,包括数据结构、数据访问模式、数据视图、数据报表等,这些前置要求限制了数据库的查询类型。既要满足数据库的性能要求,又要满足业务人员不断提出新的数据查询需求。使用Hadoop,数据库管理员可以优化数据库系统处理核心工作,把数据导出到Hadoop中进行分析处理。
对程序员来说,一旦数据放到Hadoop中,就可以轻松地创建表达力更强的查询,而不影响生产系统的效率。程序员可以使用Hadoop来建立包括研发系统和业务系统在内的多个数据源的数据管道。
通过提供高层次的接口,对技术不甚了解的产品经理、分析师或者管理层等业务人员,都可以快速地或者点对点地使用企业中的任意数据。
4Hadoop与关系型数据库结合构建海量数据分析系统的可行性分析
从前面的分析可以看出,Hadoop与关系型数据库在处理海量数据时各有利弊,可从数据解析、数据压缩、管道化、数据调度、面向列的存储几个方面进行比较[4]。
从对比可以看出,这些差距的来源主要来自于具体实现,而非关系型数据库模型和MapReduce模型之
间的差异。比如,MapReduce可以使用数据库作为底层的存储,所以以上分析都针对现实中两种模式的具体实现。因此,MapReduce 和关系型数据库结合是最好的方案,MapReduce负责数据装载、转换等工作,关系型数据库负责查询密集型的任务。Hadoop与关系型数据库可以结合使用于下列场合。
(1)ETL类的应用
Hadoop从关系型数据库读取日志信息、分析以及清理日志数据、执行复杂的变换、决定存储何种属性,接下来将分析结果存储到关系型数据库中。例如在运营商定期的经营分析中,海量的用户行为数据分析常常需要大量的计算资源,给常规的关系型数据分析系统带来巨大的计算压力,这时即可考虑使用MapReduce从关系型数据库中读取历史数据进行分析和计算。
(2)数据挖掘等复杂分析应用
很多复杂数据挖掘类型的应用需要对数据进行多步
49
中国联通研究院云计算专栏
表1Hadoop与关系型数据库的比较分析Hadoop关系型并行数据库
数据解析要用户代码来对输入的文本数据进行解析,然后再加以计算,而这个解析是每个Map和每个Reduce过程都要进行的只在装载数据的时候解析一次数据,中间计算的开销大大降低
糖化锅数据压缩使用数据压缩后,性能没有提升,甚至倒退使用数据压缩后,性能显著提升
管道化把中间状态写到一个本地的数据结构中,然后由消费者“拖取”。这种本地数据结构通常是相当庞大的,虽然这种做法可
以在中间步骤上设置更多检查点,从而可以有更好的容错
性,但很显然也引入了新的瓶颈生成一个查询规划,然后在执行的时候把计算分发到相应节点上。在该计划里一个操作符必须向下一个操作符发送数据,不管下一个操作符是否在同一节点上,因此,合格数据是由第一个操作符“推送”给第二个操作符的。这就构成了良好的从生产者到消费者的流水线作业。中间状态的数据不会写到磁盘上,但这种运行时的计算量会给生产者和消费者带来巨大压力
数据调度运行时针对每个存储块,在处理节点上调度一次。这种对每
个存储块一次的调度显然开销要大得多。当然,这种调度方
式可使其适应不同的负载风格和不同性能的节点
查询规划是编译时生成,运行时执行面向列的存储不存在不存在,但是进一步提高的手段
骤的计算和处理,通常一个程序的输出会是另外一个程序的输入,因此很难用单个SQL语句来表示。这种应用场合下,可以采用关系型数据库保存原始数据信息,同时进行交互式应用,用MapReduce进行后期复杂的分析应用,从而减少多步计算处理对关系型数据库产生的计算压力。
5结束语
根据对Hadoop的深入分析得知,Hadoop可以吞入任何数据源的任何数据,也可以按任意方式向外部系统传递数据,这意味着Hadoop可以用来备份业务系统的全局全量数据,也就是说,Hadoop可以根据自有信息和问题定制,更容易地分析和研究复杂数据,而关系型数据库擅长处理查询密集型的计算任务。因此,在实际应用中,企业可以将Hadoop与既有关系型数据库等IT系统部署在一起,从而能够以有力的新方式组合新旧数据集合。
参考文献
1童晓渝,张云勇,戴元顺.从公众通信网向公众计算通信网演进.电信科学,2010,26(6)
2Hadoop.URL:/
3刘鹏.云计算.北京:电子工业出版社,2010
4Pavlo A,Paulson E,Rasin A,et al.A comparison of approaches to large-scale data analysis.In:Proceedings of the35th SIGMOD international conference on Management of data,New York,NY, USA,2009
Research on Large-Scale Data Processing
Based on Hadoop and Relational Database
Cheng Ying,Zhang Yunyong,Xu Lei,Fang Bingyi
(China Unicom Research Institute,Beijing100048,China)
Abstract Hadoop can run applications on a cluster which is composed of a large number of low-cost hardware devices.It pushes computing to data and has advantages in processing large-scale data.The comparison between hadoop and relational database is presented and the feasibility for construction of large-scale data processing system with both methods is discussed. Finally,the practical scenarios are given.
Key words cloud computing,relational database,large-scale data(收稿日期:2010-10-05)50

本文发布于:2024-09-22 15:36:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/133896.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   数据库   系统   处理   关系
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议