网站大量收购独家精品文档,联系QQ:2885784924

Google MapReduce中文版-hadoop核心思想来源.pdf

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Google MapReduce中文版-hadoop核心思想来源

Google MapReduce中文版中文版 译者译者: alex 摘要摘要 MapReduce是一个编程模型,也是一个处理和生成超大数据集的算法模型的相关实现。用户首先创建一个 Map函数处理一个基于key/value pair的数据集合,输出中间的基于key/value pair的数据集合;然后再 创建一个Reduce函数用来合并所有的具有相同中间key值的中间value值。现实世界中有很多满足上述处 理模型的例子,本论文将详细描述这个模型。 MapReduce架构的程序能够在大量的普通配置的计算机上实现并行化处理。这个系统在运行时只关心:如 何分割输入数据,在大量计算机组成的集群上的调度,集群中计算机的错误处理,管理集群中计算机之间 必要的通信。采用MapReduce架构可以使那些没有并行计算和分布式处理系统开发经验的程序员有效利用 分布式系统的丰富资源。 我们的MapReduce实现运行在规模可以灵活调整的由普通机器组成的集群上:一个典型的MapReduce计 算往往由几千台机器组成、处理以TB计算的数据。程序员发现这个系统非常好用:已经实现了数以百计的 MapReduce程序,在Google的集群上,每天都有1000多个MapReduce程序在执行。 1、介绍、介绍 在过去的5年里,包括本文作者在内的Google的很多程序员,为了处理海量的原始数据,已经实现了数以 百计的、专用的计算方法。这些计算方法用来处理大量的原始数据,比如,文档抓取(类似网络爬虫的程 序)、Web请求日志等等;也为了计算处理各种类型的衍生数据,比如倒排索引、Web文档的图结构的各 种表示形势、每台主机上网络爬虫抓取的页面数量的汇总、每天被请求的最多的查询的集合等等。大多数 这样的数据处理运算在概念上很容易理解。然而由于输入的数据量巨大,因此要想在可接受的时间内完成 运算,只有将这些计算分布在成百上千的主机上。如何处理并行计算、如何分发数据、如何处理错误?所 有这些问题综合在一起,需要大量的代码处理,因此也使得原本简单的运算变得难以处理。 为了解决上述复杂的问题,我们设计一个新的抽象模型,使用这个抽象模型,我们只要表述我们想要执行 的简单运算即可,而不必关心并行计算、容错、数据分布、负载均衡等复杂的细节,这些问题都被封装在 了一个库里面。设计这个抽象模型的灵感来自Lisp和许多其他函数式语言的Map和Reduce的原语。我们意 识到我们大多数的运算都包含这样的操作:在输入数据的“逻辑”记录上应用Map操作得出一个中间key/ value pair集合,然后在所有具有相同key值的value值上应用Reduce操作,从而达到合并中间的数据, 得到一个想要的结果的目的。使用MapReduce模型,再结合用户实现的Map和Reduce函数,我们就可以 非常容易的实现大规模并行化计算;通过MapReduce模型自带的“再次执行” (re-execution )功能,也 提供了初级的容灾实现方案。 这个工作(实现一个MapReduce框架模型)的主要贡献是通过简单的接口来实现自动的并行化和大规模的分 布式计算,通过使用MapReduce模型接口实现在大量普通的PC机上高性能计算。 第二部分描述基本的编程模型和一些使用案例。第三部分描述了一个经过裁剪的、适合我们的基于集群的 计算环境的MapReduce实现。第四部分描述我们认为在MapReduce编程模型中一些实用的技巧。第五部 分对于各种不同的任务,测量我们MapReduce实现的性能。第六部分揭示了在Google内部如何使用 MapReduce作为基础重写我们的索引系统产品,包括其它一些使用MapReduce的经验。第七部分讨论相 关的和未来的工作。 2、编程模型、编程模型 MapReduce编程模型的原理是:利用一个输入key/value pair集合来产生一个输出的key/value pair集 合。MapReduce库的用户用两个函数表达这个计算:Map和Reduce。 用户自定义的Map函数接受一个输入的key/value pair值,然后产生一个中间key/value pair值的集合。 MapReduce库把所有具有相同中间key值I的中间value值集合在一起后传递给reduce函数。 用户自定义的Reduce函数接受一个中间key的值I和相关的一个value值的集合。Reduce函数合并这些 value值,形成一个较小的value值的集合。一般的,每次Reduce函数调用只产生0或1个输出value值。 通常我们通过一个迭代器把中间value值提供给Reduce函数,这样我们就可以处理无法全部放

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档