您现在的位置是:主页 > 数据库技术 > 数据库技术

MapReduce大型集群上的简化数据怎么处理

IDCBT2021-12-31服务器技术人已围观

简介本篇内容主要讲解“MapReduce大型集群上的简化数据怎么处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MapReduce大型集群上的

本篇内容主要讲解“MapReduce大型集群上的简化数据怎么处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MapReduce大型集群上的简化数据怎么处理”吧!

摘要:

      MapReduce是一个编程模型,以及处理和生成大型数据集的一个相关实现,它适合各种各样的现实任务。用户指定计算的map和reduce函数。底层运行系统自动地将大规模集群机器间的计算并行化,处理机器故障,以及调度机器间通信以充分利用网络和磁盘。程序员会发现这个系统很好使用:在过去的去年中,超过一万个不同的MapReduce程序已经在Google内部实现,平均每天有十万个MapReuce作业在Google集群上被执行,每天总共处理20PB以上的数据。

1 简介

      在MapReduce开发之前,作者和其他许多的Google员工实现了数以百计的处理大量原始数据(如抓取到的文档、Web请求日志等等)的专用计算方法,以计算各种导出的数据,如倒排索引、Web文档图结构的各种表示、每个host抓取到的页面数的总结、某一天最频繁的一组查询。大多数这样的计算在概念上是非常简单的,然而它们的输入数据量通常非常大。为了在合理的时间内完成这些计算,它们必须分布到成百上千的机器上。如何并行化计算,分发数据,以及处理故障,这些问题结合起来,往往会让程序员使用大量复杂代码来处理,而掩盖了原本简单的计算。

      为了应对这一复杂性,我们设计了一个新的抽象,它允许我们表达试图执行的简单计算,但将并行化、容错、数据分布和负载均衡等凌乱的细节隐藏到了库中。这个抽象的灵感来源于出现在Lisp和许多其他函数式语言中的map和reduce原语。我们实现了大部分的计算,包括为输入的每一个逻辑记录应用一个map操作以计算一组中间键值对,然后对所有共享同一个键的值应用一个reduce操作以恰当地结合导出的数据。此函数式模型支持用户自定义map和reduce操作,使我们能非常容易地并行处理大型计算,和使用再执行(reexecution)作为主要的容错机制。

      这项工作的主要贡献就是一个简单而强大的接口,它完成自动并行化、大规模分布计算,结合该接口的一个实现在大型商用PC集群上获得了很高的性能表现。该编程模型还可以用于同一台机器上多个核心间的并行计算。

      第2部分描述了基本的编程模型并给出几个例子。第3部分描述了MapReduce接口专门针对基于集群的计算环境的一个实现。第4部分描述了我们发现的这个编程模型的几个很有用的改进(refinements)。第5部分描述了对各种不同任务的实现的性能度量。第6部分探索了MapReduce在Google中的应用,包括使用它作为重写我们的生产索引系统的基础的一些经验。第7部分讨论了相关和未来的工作。

标签:

很赞哦! ()

本栏推荐