发布日期:2015-12-07 11:34 来源: 标签: 云计算与大数据 Hadoop教程 MapReduce算法 海量数据
本章我们主要学习MapReduce算法,下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
算法介绍 
2004年,Google发表了论文,向全世界介绍了MapReduce。 2005年初,Nutch的开发者在Nutch上有了一个可工作的MapReduce应用

5-3 mapreduce结构示意图一 

5-4 mapreduce结构示意图二 
      MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。 
      在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。(廉价的机器群可以匹敌任何高性能的计算机,纵向扩展的曲线始终敌不过横向扩展的斜线)。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce要做的工作。 
具体过程序如下: 
1) Input输入 
从文件中读取原始数据原始数据<InputKey, InputValue> 
2) Map映射将原始数据映射成用于Reduce的数据<InputKey, InputValue> List<<MapKey, MapValue>> 
3) Reduce合并将相同Key值的中间数据合并成最终数据 
<MapKey, List<MapValue>>  <OutputKey, OutputValue> 
4) Output输出将最终处理结果输出到文件 
<OutputKey, OutputValue> 结果文件上述就是MapReduce大致处理过程,在Map前还可能会对输入的数据有Split(分割)的过程,保证任务并行效率,在Map之后还会有Shuffle  (混合)的过程,对于提高Reduce的效率以及减小数据传输的压力有很大的帮助。后面会具体提及这些部分的细节。  

相关评论

专题信息
    Hadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊、Facebook和Yahoo等等。Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。本教程对Hadoop做了详解的介绍与讲解,教程中的实例能让大家更快的学习Hadoop,望大家多多支持中国站长网络学院。