第1章 了解Hadoop MapReduce
MapReduce是一个流行的针对数据密集任务的分布式计算模型,它正在发展成为用来支撑包括Web索引、数据挖掘和科学仿真等领域的大规模数据并行应用的重要编程模型。
Hadoop是Google公司的MapReduce编程模型的最受欢迎的Java开源实现。在很多公司,Hadoop已经用于大规模数据分析任务,并且经常用在对响应时间要求很严格的作业中。
在深入了解 MapReduce 编程和 Hadoop 性能调优之前,我们先来回顾一下MapReduce模型的基础知识,并了解有哪些因素影响着Hadoop的性能。
本章将介绍以下内容:
MapReduce 模型;
Hadoop MapReduce 概述;
Hadoop MapReduce 的工作原理;
影响MapReduce 性能的因素。
1.1 MapReduce模型
MapReduce编程模型的设计目标是,使用普通硬件的大型集群处理非结构化数据并产生大规模数据集。它能够在数千个计算节点的集群上处理 TB 级的数据,进行故障处理,完成任务复制并聚合最终结果。
MapReduce 模型简单易懂。它是由 Google 研究院的工程师在 21 世纪初设计的(http://research.google.com/archive/mapreduce.html)。这一模型包含两个可以在多台机器上并行执行的函数:一个map函数和一个reduce函数。
要使用MapReduce,程序员需要编写一个用户定义的map函数和一个(同样是用户定义的)reduce函数来表示期望的计算逻辑。map函数读取键值对,执行用户指定的代码,产生中间结果。然后,通过reduce函数的用户指定代码聚合中间结果并输出最终结果。
Get 面向MapReduce的Hadoop优化 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.