大数据hadoop生态体系之MapReduce快速入门(11)

MapReduce:分布式计算系统,hadoop的三大核心功能之一。

MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:

1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。

2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。

3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理

由来:

MapReduce最早是由Google公司研究提出的一种面向大规模数据处理的并行计算模型和方法。Google公司设计MapReduce的初衷主要是为了解决其搜索引擎中大规模网页数据的并行化处理。Google公司发明了MapReduce之后首先用其重新改写了其搜索引擎中的Web文档索引处理系统。但由于MapReduce可以普遍应用于很多大规模数据的计算问题,因此自发明MapReduce以后,Google公司内部进一步将其广泛应用于很多大规模数据处理问题。Google公司内有上万个各种不同的算法问题和程序都使用MapReduce进行处理。

MapReduce实现案例图示:

实现原理:

1> 通过map接口方法,把读取文件块的一行信息,再通过特定的符号,对改行信息进行分割,把每个单词作为以键值对的形式存入到上下文中,

单词作为key,value为1 ,每读取一个单间进行一次写入,然后再把相同的key的value以集合的形式传入到reduce方法中进行计算

2> 通过reduce方法获取到shuffle之后的数据,每次计算一个相同key的所有的value值,实现统计操作,然后再写入到上下文输入到文件中。

你可能感兴趣的:(大数据hadoop生态体系之MapReduce快速入门(11))