文档介绍:A Dissertation Submitted to Shanghai Jiao Tong University for the
Master Degree of Engineering
RESEARCH ON APPROACHES TO LARGE-SCALE
DATA ANALYSIS
Author:GuiQiang Wang
Advisor: prof. ChaoJun Lu
Specialty: Computer System Architecture
School of Electronic and Electric Engineering
Shanghai Jiao Tong University
Shanghai,
February 2010
海量数据分析处理方法的研究
摘要
随着信息技术的发展,很多领域对信息系统的建设处在转型阶
段。以金融领域为例,后续 IT 建设的重心逐步从建设“核心业务交
易系统”进入到构建“以客户为中心、以风险控制和盈利分析为目标
的信息管理系统”的发展阶段。这种转型需要对原有业务系统的数据
进行统一分析,实现数据跨部门、跨时间和跨平台共享。为此海量数
据分析处理需求强烈。
MapReduce 是由 Google 公司首先提出的,一种能在大型计算机
集群上并发地处理海量数据的框架模型。使用者通过指定一个 Map 函
数将输入数据转化成为一系列中间键-值对,然后由一个自定义的
reduce 函数将具有相同键的值聚集起来,将结果输出。很多现实世
界对海量数据的处理,都可以用这种模型来表示。
并行数据库作为一种高性能的数据库系统,是并行技术和数据库
技术结合的产物,它大大提高了关系数据库中对数据的处理效率。常
见的并行数据库根据并行架构的不同,可以分为共性内存、共性磁盘、
无共享的三种架构方式。
本文在分析 Mapreduce 和并行数据库的基础上,提出了一种并发
处理海量数据的更通用、更可扩展的平台大概架构。并对相关的产品
进行了详细的测试。
首先,我们分析了 MapReduce 和并行数据库对海量数据处理的并
行方式,具体的了解了两种方法的发展以及实现思路。接着,我们从
多个方面对两者进行了详细的比较,得到了它们的优缺点,为后续的
设计打下了基础。接着我们提出了三种 MapReduce 和 SQL 结合的方式,
分别是 MapReduce 引擎增加 SQL 层、MapReduce 调度 SQL 语句、SQL
第 I 页
语句调用 MapReduce,通过三种结合方式的比较,我们认为 SQL 语句
调用 MapReduce 的方法是最好的一种。
然后,我们提出了将并行数据库和 MapReduce 结合的大概设计框
架,这种架构采用客户端、主控节点、分支节点的三点式架构。其中,
主控节点负责收集与处理其他节点的各种信息;分支节点负责任务的
具体执行。接着,我们通过 MapReduce 的自定义函数对 SQL 进行了扩
展,提出了将 MapReduce 嵌入到 SQL 语句里面的方式和具体的执行方
式。接着,我们描述了数据分布策略和镜像处理的概要情况。
最后,我们对当前比较优秀的并行数据库 Greenplum 进行了详细
的测试,测试数据以真实的一家证券公司的业务数据为基础,从数据
加载、统计分析执行等几个方面进行了性能比较。得到了其针对海量
数据处理的性能结果。
关键词:海量数据,并行计算,分布式文件系统,并行数据库,负载
均衡,数据分布
第 II 页
RESEARCH ON APPROACHES TO LARGE-SCALE
DATA ANALYSIS
ABSTRACT
With the development of information technology, the construction of
information systems is in transition phase for many fields. Take the
financial field for example. In the past, the core of the IT construction is
about business trading system. But now, lots panies have pay more
attention on information management system aim