【注:本人菜鸟一枚,喜欢Hadoop方向的大数据处理,现在正在研读Google影响世界的三篇论文,遂一边阅读一边翻译,错误在所难免,希望大家给予批评,我会增加学习的动力】

1 Introduction

  Over the past five years,the authors and many others at Google have implemented hundreds of special-purpose computations that process large amounts of raw data,such as crawled documents,web request logs,etc.,to compute various kinds of derived data,such as inverted indices,various representations of the graph structure of web documents,summaries of the number of pages crawled per host,the set of most frequent queries in a given day ,etc.Most such computations are conceptually straightforward.However,the input data is usually large and the computations have to be distributed across hundreds or thousands of machines in order to finish in a reasonable amount of time.The issues of how to parallelize the computation ,distribute the data,and handle failures conspire to obscure the original simple computation with large amounts of complex code to deal with these issues.

  As a reaction to this complexity,we designed a new abstraction that allows us to express the simple computations we were trying to perform but hides the messy details of parallelization,fault-tolerance,data distribution and load balancing in a library. Our abstraction is inspired by the map and reduce primitives present in Lisp and many other functional languages.We realized that most of our computations involved applying a map operation to each logical "record" in our input in order to compute a set of intermediate key/value pairs,and then applying a reduce operation to all the values that shared the same key,in order to combine the derived data appropriately. Our use of a functional model with user specified map and reduce operations allows us to parallelize large computations easily and to use re-execution as the primary mechanism for fault tolerance.

  The major contributions of this work are a simple and powerful interface that enables automatic parallelization and distribution of large-scale computations,combined with an implementation of this interface that achieves high performance on large clusters of commodity PCs.

  Section 2 describes the basic programming model and gives several examples.Section 3 describes an implementation of the MapReduce interface tailored towards our cluster-based computing environment.Section 4 describes several refinements of the programming model that we have found useful.Section 5 has performance measurements of our implementation for a variety of tasks. Section 6 explores the use of MapReduce within Google including our experiences in using it as the basis for a rewrite of our production indexing system.Section 7 discusses related and future work.

---------------------------中文翻译---------------------------

1  介绍

  在过去的五年里,作者和谷歌的其他员工实现了几百个有着特殊目的计算方法,用来处理大量的原始数据,例如文档抓取、网络请求日志等;也处理各种各样的派生数据,例如倒排索引、web文档的各种有代表性的图形结构、爬行每个集群抓取页面的汇总,以及每天被请求最多的查询的集合等。大部分这样的运算在概念上都是比较好理解的。然而,输入的数据通常是大型的并且要在一个合理的时间内利用分布的几百台机器完成计算。问题在于如何实现并行运算、如何分布数据以及如何处理故障,面对这些问题需要大量复杂的代码进行处理,这也使原本简单的运算变得难以处理。

  为了解决上述的复杂问题,我们设计了一个新的抽象的模型,这个模型允许我们不考虑散乱的并行运算、分布式文件系统以及负载均衡这一系列问题的细节,而让我们表述我们想要的简单计算就可以了。我们的抽象模型是来自于Lisp和许多其他功能语言中的Map和Reduce原语。我们意识到大部分的运算都涉及到这样的应用:运用map函数将输入的逻辑“记录”处理成一系列的中间媒介key/value对,然后运用Reduce函数处理所有拥有相同key值的key/value对中的value值,目的是适当的合并派生数据。我们使用这个功能模型与用户指定的map和reduce操作相结合,这样就允许我们很容易的实现并行运算,并且可以实现再次执行的功能并以此作为基础设备的容错方案。

  这个模型的主要贡献是通过一个简单而强大的接口来实现自动地并行处理和大规模的分布式计算,通过大量的普通计算机与模型的处理接口相结合来实现高性能。

  论文的第二部分描述了基本的编程模型,并给出了几个例子;第三部分描述了一个针对于集群计算环境定制的MapReduce接口;第四部分描述了几个我们发现比较有用的编程模型;第五部分我们执行各种任务来测定MapReduce的性能;第六部分探讨了谷歌如何使用MapReduce,包括我们以此(MapReduce)作为基础重写索引系统的基础经验;第七部分讨论了与此相关的未来的工作。

转载于:https://www.cnblogs.com/xiaogaolinus/archive/2013/03/21/2974182.html

MapReduce:Simplified Data Processing on Large Clusters(中文翻译2)相关推荐

  1. MapReduce: Simplified Data Processing on Large Clusters_中文翻译

    MapReduce: Simplified Data Processing on Large Clusters (作为大数据处理的经典文献,个人在学习的过程中参考其它译文进行翻译: 参考译文: htt ...

  2. MapReduce: Simplified Data Processing on Large Clusters论文翻译(MapReduce-OSDI04)

    作者 Jeffrey Dean and Sanjay Ghemawat jeff@google.com, sanjay@google.com Google, Inc 摘要 MapReduce是一个编程 ...

  3. “MapReduce: Simplified Data Processing on Large Clusters”

    MapReduce: Simplified Data Processing on Large Clusters MapReduce:面向大型集群的简化数据处理 摘要 MapReduce既是一种编程模型 ...

  4. 6.824 paper MapReduce: Simplified Data Processing on Large Clusters

    本文关于原理部分的内容主要在第三第四节: 3 Implementation 3.1 Execution Overview The Map invocations are distributed acr ...

  5. MapReduce:Simplified Data Processing on Large Clusters中文版from百度文库

    超大集群的简单数据处理 转自百度文库 Jeffrey Dean Sanjay Ghemawat jeff@google.com , sanjay@google.com Google , Inc. 摘要 ...

  6. 【分布式 论文】之 1. MapReduce——Simplified Data Processing on Large Clusters

    文章目录 1. 需求 / 现存问题 2. 总述 3. 实现 3.1 概述 3.2 Master的数据结构 3.3 容错性 3.3.1 worker节点故障 3.3.2 master节点故障 3.3.3 ...

  7. 《MapReduce: Simplified Data Processing on Large Clusters》译文

    原文链接:http://stanford.edu/class/cs345d-01/rl/mapreduce.pdf MapReduce:在大规模集群上简化数据处理 作者:Jeffrey Dean和Sa ...

  8. MapReduce: Simplified Data Processing on Large ...

    2019独角兽企业重金招聘Python工程师标准>>> MapReduce: Simplified Data Processing on Large Clusters Abstrac ...

  9. Fast unfolding of communities in large networks 中文翻译

    Fast unfolding of communities in large networks 中文翻译 摘要 Keywords 1 引言 2 方法 3 应用于大型网络 4 结论和讨论 引用 Blon ...

最新文章

  1. 数据库界的Swagger:一键生成数据库文档!你不了解一下?
  2. 包python_Python 包:
  3. NIST发布企业移动应用安全建议参考指南
  4. jqgrid 编辑列拿不到值_德云社十大杰出学霸,岳云鹏赫然在列,小岳岳你这是否有点牵强...
  5. matlab铣削,基于MATLAB的微细铣削力分析
  6. css 实现标签切换,CSS_纯CSS实现Tab切换标签效果代码,本文实例讲述了纯CSS实现Tab切 - phpStudy...
  7. error:lnk2005 已经在*.obj中定义_如何在 Spring 中自定义 scope
  8. 中国电信:预计2021年归母净利润同比增长23%-25%
  9. 发那科机器人编程软件fanuc roboguide授权补丁_发那科Robot | Line Tracking功能
  10. C++字节存储方式和reinterpret_cast
  11. 快速明白ARCore + 上手
  12. android 判断 飞行模式,Android 设置飞行模式,判断是否是飞行模式
  13. 在谷歌浏览器上加载翻译软件(金山词霸)
  14. 【2020最新,无错误!】python实现百度API---地址转经纬度(地理编码)/经纬度转地址(逆地理编码),含源码
  15. Windows远程桌面出现Error code: 0xc07的解决方案
  16. Gala concert held to commemorate Andersen
  17. apple watch3连android,无需艳羡苹果党的Apple Watch 3 这款安卓通话神器亮了
  18. KEIL、uVision、RealView、MDK、KEIL C51区别比较
  19. 一个额外的小问题——关于jdk和Language level的关系
  20. 一个tesseract ocr box 文件查看toy,python

热门文章

  1. 马斯克揭晓谜底!SpaceX大火箭将送日本富豪环月七日游
  2. 自学几小时,斯坦福AI推测并复现了元素周期表 | 华裔团队研究
  3. 百度DuerOS联手蓝港发布“小青智趣”,布局AI语音问答游戏
  4. 十六、字符串和数组之间的转换
  5. eclipse-4.4.2安装Groovy插件(其他版本eclipse可参考)
  6. poj 3624 Charm Bracelet (01背包)
  7. Oracle show sga产生的结果研究
  8. 可变参数函数的一个简单例子
  9. 如何“在21天内自学C++”
  10. syncd的使用和部署