之前在IT168上已经写了一些关于云计算误区的文章,虽然这些文章并不是非常技术,但是也非常希望它们能帮助大家理解云计算这一新浪潮,而在最近几天,IT168的唐蓉同学联系了我,希望我能将云计算背后的一些核心技术介绍给IT168的读者,虽然我本身已经忙于其它事务,但是由于云计算的核心技术是我最熟悉和最擅长,而且宣传这些技术也是我写《剖析云计算》一书和建立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的官方站点上下载并试用。

转载于:https://www.cnblogs.com/mengheyun/archive/2010/12/16/1963096.html

云计算背后的秘密(1)-MapReduce相关推荐

  1. 云计算背后的秘密(6)-NoSQL数据库的综述

    我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL的理解也只 ...

  2. 云计算背后的秘密(3)-BigTable

    由于在Google的数据中心存储PB级以上的非关系型数据时候,比如网页和地理数据等,为了更好地存储和利用这些数据,Google开发了一套数据库系统,名为"BigTable". 技术 ...

  3. 深度剖析云计算背后采用的技术(转载)

    引:http://www.360doc.com/content/10/1016/21/23378_61594035.shtml 云计算作为一种新型的计算模式,还处于早期发展阶段.众多大小不一.类型各异 ...

  4. 抢占智能家居入口,中兴智能锁众筹2200多万背后的秘密是什么?

    ▲中兴智能家居产品总监彭凯先生 撰稿|本刊编辑  吴哲     图片|中兴提供 如果,有这么一套智能家居系统,其中包含智能锁.路由器.家用摄像头等多个智能单品.当有不法分子试图暴力或是技术开启智能锁时 ...

  5. CC讲坛-大脑疾病背后的秘密-许执恒

    <CC讲坛>第二十期于2017年7月27日在北京东方梅地亚中心M剧场举行,中国科学院遗传与发育生物学研究所研究员许执恒出席并进行题为<大脑疾病背后的秘密>的演讲. 胚胎时期大脑 ...

  6. if快还是switch快?解密switch背后的秘密

    这是我的第 57 篇原创文章 条件判断语句是程序的重要组成部分,也是系统业务逻辑的控制手段.重要程度和使用频率更是首屈一指,那我们要如何选择 if 还是 switch 呢?他们的性能差别有多大?swi ...

  7. 网络安全- 专访丨互联网安全城市巡回赛冠军肖策:“大满贯”背后的秘密

    导语:你所看到的让人欣羡的荣耀时刻,是背后无数个日夜的辛苦付出! 在2019互联网安全城市巡回赛·西安站中,有一个白帽子拿下了8家大满贯,这位大神就是[火石计划杯]精英白帽挑战赛的第一名:Reckfu ...

  8. 隐藏在QRCode二维码背后的秘密

    隐藏在QRCode二维码背后的秘密,您知道吗? 1.容错级. 二维码的容错级分别为:L,M,Q和H.其中,L最低,H最高.如何从二维码中一眼看出其容错级别呢?看下图: 图1  容错级示例 如上图所示, ...

  9. 惠普电脑诉讼门:矛盾的数字 背后的秘密

    现在,对"3·15"前曝出的惠普笔记本电脑质量问题,国家质检总局今天(14日)作出正式回应表示,该局已受理消费者对惠普笔记本电脑质量问题的投诉并组织开展调查. 国家质检总局相关负责 ...

最新文章

  1. thinkphp5.0 insert添加数据
  2. Linux fs清理文件,linux找出已经删除但磁盘空间未释放的大文件并清空
  3. php echo表单提交_PHP常见面试题及答案
  4. java uncked_使用FindBugs对SpringSide1.0m3进行分析的结果
  5. 9. OD-PEID的入门及BASIC(VB)开发的程序破解
  6. C# OpenTK教程 - 1.2 你好三角形
  7. 运行orbslam2出现 段错误 (核心已转储)_JDK 14已发布快速预览16个新特性
  8. [Swift]LeetCode480. 滑动窗口中位数 | Sliding Window Median
  9. ACM模板(Java)
  10. 计算机桌面文件自动备份取消,设置电脑收银系统自动备份及备份清除功能
  11. 【OFDM通信】基于块状导频的信道估计算法仿真含Matlab源码
  12. 每周写周报每天写总结
  13. 一套非常精美的全球地貌晕渲图,有想要的吗?
  14. python 绘图如何画螺旋圈_如何画出python螺旋线
  15. loadrunner入门教程(4) --loadrunner的下载
  16. Oracle使用PL/SQL自定义函数
  17. HTTP报500错误的原因
  18. Unity 从零开始做游戏
  19. 【项目管理/PMP/PMBOK第六版/新考纲】计算题30道带答案解析!赶工/关键路径/类比估算/挣值/变更
  20. c语言随机选几个球,WebAssembly Demo之Canvas中随机运动圆球

热门文章

  1. 输出链表倒数第K个节点
  2. mysql常见关键字
  3. UDP调用connect函数
  4. <java并发编程实践>读书笔记一
  5. oracle12基本操作
  6. 前端三十一:标签的属性
  7. Redis分布式锁(Redlock官方文档的理解)
  8. NumberOf1Bits(leetcode191)
  9. MongoDB trouble shoot sharded clusters
  10. 每天多一点(2016.12.04)》Javascript隐式转换