1 / 58
文档名称:

基于MapReduce模型的分布式计算平台的原理与设计.pdf

格式:pdf   页数:58
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于MapReduce模型的分布式计算平台的原理与设计.pdf

上传人:coconut 2014/2/28 文件大小:0 KB

下载得到文件列表

基于MapReduce模型的分布式计算平台的原理与设计.pdf

文档介绍

文档介绍:华中科技大学
硕士学位论文
基于MapReduce模型的分布式计算平台的原理与设计
姓名:张文峰
申请学位级别:硕士
专业:软件工程
指导教师:刘小峰
2010-01-16
华中科技大学硕士学位论文
摘要
互联网应用的高速发展与应用为企业带来了非常巨大的发展机遇,各种个性化
的应用与服务散发着无限魅力。然而随之而来的是海量数据。如何正确而高效的从
海量数量中分析有用信息并做出决策是目前所有新型互联网企业必须面对的一件极
具挑战性的工作。
传统上,人们往往选择使用分布式计算系统来处理这种复杂而庞大的任务。传
统的分布式计算平台往往依赖高端大型服务器,并且需要专业分布式与并行计算的
程序员进行长期设计与维护。这往往使得新型互联网企业面临巨大的经济压力。因
此,设计一个采用大量廉价机器组成的可扩展的分布式计算平台变得尤其重要。
MapReduce 是一种并行编程模型,它用于处理大型的数据集的程序设计中。基
于这种功能的程序能够在大规模的廉价机器上并发地执行任务。基于 MapReduce 编
程模型的分布式计算系统解决以下细节:分割输入数据,在集群上的调度,机器的
错误处理,管理机器之间必要的通信。这样就可以让没有并行编程经验的程序员利
用大量分布式系统的资源了。
基于 MapReduce 编程的优点,本文在分析当前各种分布式计算系统的基础上,
设计了一个运行于普通廉价机器上的可扩展的分布式计算平台。首先我们对比当前
几种流行的分布式计算技术,总结各自的优缺点,提出了更适合于分析海量数据的
分布式计算平台框架。然后从平台总体架构上进行设计,合理地设计了各个功能子
模块。我们花了大量笔墨于系统 I/O 模块和 MapReduce 模块,因为系统 I/O 的好坏
将直接影响到系统的整体性能。而 MapReduce 模块是整个系统的核心,精心设计的
MapReduce 子模块是对系统良好运行的保证。最后,我们对影响到系统性能的关键
策略进行探讨,包括作业和任务调度,容错机制等。

关键词:数据处理映射规约分布式计算任务调度容错机制
I
华中科技大学硕士学位论文
Abstract
The rapid development of applications brings a plenty of opportunities for
enterprise development, and a variety of personalized applications and services were
distributed with infinite charm. However, it results in a mass of data. Therefore, it is a
challenging job for all new panies to properly and efficiently make decisions
from the analysis of massive amount of useful information.
Traditionally, people often choose to use the puting system to deal
with plex and huge task. The traditional puting platform is often
dependent on high-end large-scale servers, and needs professional programmers of
distributed and puting for long-term design and maintenance. This often
makes the new panies feel tremendous economic pressures. Therefore,
designing a scalable puting posed of a large number of
low-cost machines has e particularly important.
MapReduce is a parallel programming model, which can be used to handle large
data sets in the process of program design. Programs that are based on this function can
plicate