对于大数据处理的诸多计算框架,从Hadoop到Spark,其中受到重用的数据处理思想,其实一直都是MapReduce。MapReduce开创了分布式并行计算的先河,并且在之后的发展当中持续得到应用。今天的大数据学习分享,我们就主要来讲讲MapReduce是怎么来的。
事实上,MapReduce的基因是来自Google公司的,在PC互联网时代,搜索引擎所承载的数据资源是非常庞大的,而用户在搜索端的需求,需要从海量的数据当中去快速提取出相应的资源。面对越来越庞大的数据资源,以及越来越丰富的搜索需求,Google开始了探索。
2004年,Google 在 MapReduce: Simplified Data Processing on Large Clusters 论文中提出了MapReduce 的功能特性和设计理念,设计MapReduce 的出发点就是为了解决如何把大问题分解成独立的小问题,再并行解决。
例如,MapReduce的经典使用场景之一就是对一篇长文进行词频统计,统计过程就是先把文章分为一句一句,然后进行分割,最后进行词的数量统计。
对相互间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略,这就是MapReduce的最初指导思想。
MapReduce用于大规模数据集(大于1TB)的并行运算。概念Map(映射)和Reduce(归约),是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
MapReduce合并了两种经典函数:
映射(Mapping)对集合里的每个目标应用同一个操作。即,如果你想把表单里每个单元格乘以二,那么把这个函数单独地应用在每个单元格上的操作就属于mapping。
化简(Reducing)遍历集合中的元素来返回一个综合的结果。即,输出表单里一列数字的和这个任务属于reducing。
各个map函数对所划分的数据并行处理,从不同的输入数据产生不同的中间结果输出。
各个reduce也各自并行计算,各自负责处理不同的中间结果数据集合进行reduce处理之前,必须等到所有的map函数做完,因此,在进入reduce前需要有一个同步障(barrier);这个阶段也负责对map的中间结果数据进行收集整理(aggregation&shuffle)处理,以便reduce更有效地计算最终结果——最终汇总所有reduce的输出结果即可获得最终结果。
关于大数据学习,MapReduce产生背景,以上就为大家做了简单的介绍了。MapReduce作为大数据处理的重要框架,在大数据生态当中的地位关键,掌握MapReduce对后续的学习也至关重要。成都加米谷大数据,专业
大数据培训机构,大数据开发,数据分析与挖掘,零基础班本月即将开班,课程大纲及试听课程可联系客服领取!