您现在的位置 >> Hadoop教程 >> Hadoop实战 >> mapreduce专题  
 

云计算背后的秘密(1)-MapReduce - 51CTO.COM

【作者:Hadoop实战专家】【关键词:云计算 分布式文件系统 MapReduce 】 【点击:48300次】【2013-05-0】
在这个新系列中将介绍多种云计算所涉及到的核心技术,包括分布式处理、分布式数据库、分布式锁、分布式文件系统、多租户架构和虚拟化等,而且将会介绍这些技术相关的产品和用例,以帮助大家进一步理解这些技术。  

相关热门搜索:hadoop云计算平台 云计算 云计算 大数据技术

大数据标签:hadoop hdfs mapreduce hbase hive zookeeper bigdata

【引言】之前我写过一些关于云计算误区的文章,虽然这些文章并不是非常技术,但是也非常希望它们能帮助大家理解云计算这一新浪潮。最近,我将云计算背后的一些核心技术介绍给读者,由于云计算的核心技术是我最熟悉和最擅长,而且宣传这些技术也是我写《剖析云计算》一书和建立PeopleYun.com站点的初衷,这就是“云计算背后的秘密”这个系列的由来。

在这个新系列中将介绍多种云计算所涉及到的核心技术,包括分布式处理、分布式数据库、分布式锁、分布式文件系统、多租户架构和虚拟化等,而且将会介绍这些技术相关的产品和用例,以帮助大家进一步理解这些技术。预计每周会更新一篇,总长度会在10篇左右,希望大家能喜欢,而本文则是这个系列的第一篇。

在Google数据中心会有大规模数据需要处理,比如被网络爬虫(Web Crawler)抓取的大量网页等。由于这些数据很多都是PB级别,导致处理工作不得不尽可能的并行化,而Google为了解决这个问题,引入了MapReduce这个分布式处理框架。

技术概览

MapReduce本身源自于函数式语言,主要通过"Map(映射)"和"Reduce(化简)"这两个步骤来并行处理大规模的数据集。首先,Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作,且原始列表不会被更改,会创建多个新的列表来保存Map的处理结果。也就意味着,Map操作是高度并行的。当Map工作完成之后,系统会接着对新生成的多个列表进行清理(Shuffle)和排序,之后,会这些新创建的列表进行Reduce操作,也就是对一个列表中的元素根据Key值进行适当的合并。下图为MapReduce的运行机制:

图1. MapReduce的运行机制

接下来,将根据上图来举一个MapReduce的例子来帮助大家理解:比如,通过搜索引擎的爬虫(Spider)将海量的Web页面从互联网中抓取到本地的分布式文件系统中,然后索引系统将会对存储在这个分布式文件系统中海量的Web页面进行平行的Map处理,生成多个Key为URL,Value为html页面的键值对(Key-Value Map),接着,系统会对这些刚生成的键值对进行Shuffle(清理),之后,系统会通过Reduce操作来根据相同的key值(也就是URL)合并这些键值对。

优劣点

谈到MapReduce的优点,主要有两个方面:其一,通过MapReduce这个分布式处理框架,不仅能用于处理大规模数据,而且能将很多繁琐的细节隐藏起来,比如,自动并行化、负载均衡和灾备管理等,这样将极大地简化程序员的开发工作;其二,MapReduce的伸缩性非常好,也就是说,每增加一台服务器,其就能将差不多的计算能力接入到集群中,而过去的大多数分布式处理框架,在伸缩性方面都与MapReduce相差甚远。而 MapReduce最大的不足则在于,其不适应实时应用的需求,所以在Google最新的实时性很强的Caffeine搜索引擎中,MapReduce的主导地位已经被可用于实时处理Percolator系统所代替,其具体细节,将在本系列接下来的文章中进行介绍。

相关产品

除了Google内部使用的MapReduce之外,还有,由Lucene之父Doug Cutting领衔的Yahoo团队开发,Apache管理的MapReduce的开源版本Hadoop,而且一经推出,就受到业界极大的欢迎,并且衍生出HDFS、ZooKeeper、Hbase、Hive和Pig等系列产品。

实际用例

在实际的工作环境中,MapReduce这套分布式处理框架常用于分布式grep、分布式排序、Web访问日志分析、反向索引构建、文档聚类、机器学习、数据分析、基于统计的机器翻译和生成整个搜索引擎的索引等大规模数据处理工作,并且已经在很多国内知名的互联网公司内部得到极大地应用,比如百度和淘宝。

最后,如果大家对MapReduce感兴趣的话,可以到Hadoop的官方站点上下载并试用。

【编辑推荐】

1. 从Qualcomm公司实施云计算说起
2. 咖啡馆里的云 打印机的新模样
3. 了解云的多租户是云采用的关键一步

大数据系列mapreduce相关文章:

最新评论
ali无影2014-09-10 08:26:04
Hadoop切分纯文本时对某一行跨两个分片这种情况的处理 作者: zsxwing 更新: 2012-09-06 22:42:51 发布: 2012-09-06 22:42:51 当我们提交一个MapReduce程序来处理一个或多个纯文本时,Hadoop会根据设置的分片(split)大小把文件切分成多个(InputSplit),然...畅读版【http://t.cn/8FnCFI4】
小苹果2014-09-09 10:57:07
概念不容易卖钱不是
ganliang132014-09-09 07:08:39
我就是想学英语了
艾迪Aidi2014-09-09 03:41:18
Hi,我正在使用#百度网盘#,给大家分享“Hadoop企业级完整训练:Rocky的16堂课(HDFS&MapReduce&HBase&Hive&Zookeeper&Sqoop&Pig&Flume&Project).docx”文件,快来看看吧
维也纳忧伤2014-09-09 01:07:54
Hadoop时区问题
小魔鬼2014-09-08 01:38:54
flume启动时那个配置文件,堆溢出,,一直抛异常,,现在我想停ctrl+C,都停不下来
anders云计算2014-09-07 07:13:33
#LSI AIS Asia#【闪存解决方案对数据中心的三大影响】1. 数据库,使Oracle 11gR2、MySQL及 Oracle NoSQL实现超低延迟,IOPS提高50%,并具备可服务性;2.VDI,使虚拟容量高速缓存容量高达两倍,并加快高速缓存写入速度;3.Hadoop,使Hadoop-Apache 、Cloudera Hadoop – MapR的吞吐量均提高 8-12%。
星辰2014-09-06 10:11:23
[图片]
傻潴2014-09-06 03:58:21
百度是如何使用hadoop的,并且做了哪些改进-Hadoop-@大数据资讯 http://t.cn/RPaT1XN (分享自 @大数据资讯)
im_v_v2014-09-05 11:10:43
【Zookeeper工作原理】ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用 (分享自 @IT技术博客大学习) http://t.cn/8Fz1tPe
 
  • Hadoop生态系统资料推荐