vlambda博客
学习文章列表

简单描述MapReduce(mr是什么?)

    



MapReduce





概念

  • Hadoop MapReduce 是一个分布式计算框架,用于编写批处理应用程序。编写好的程序可以提交到 Hadoop 集群上用于并行处理大规模的数据集。

  • MapReduce作业通常将输入数据集拆分为独立的块,这些任务由map任务以完全并行的方式进行处理。框架对map的输出进行排序,然后将其输入到reduce任务。

  • 通常,作业的输入和输出都存储在文件系统中。该框架负责安排任务,监视任务并重新执行失败的任务。




MapReduce流程图  



MapReduce可以分成Map和Reduce两部分理解。

  • 1.Map:映射过程,把一组数据按照某种Map函数映射成新的数据。

  • 2.Reduce:归约过程,把若干组映射结果进行汇总并输出。

让我们来看一个实际应用的栗子,如何高效地统计出全国所有姓氏的人数?


简单描述MapReduce(mr是什么?)


统计出全国所有姓氏的人数流程图

我们可以利用MapReduce的思想,针对每个省的人口做并行映射,统计出若干个局部结果,再把这些局部结果进行整理和汇总:
1.Map:

以各个省为单位,多个线程并行读取不同省的人口数据,每一条记录生成一个Key-Value键值对。图中仅仅是简化了的数据。2.Shuffle

Shuffle这个概念在前文并未提及,它的中文意思是“洗牌”。Shuffle的过程是对数据映射的排序、分组、拷贝。

3.Reduce

执行之前分组的结果,并进行汇总和输出。

需要注意的是,这里描述的Shuffle只是抽象的概念,在实际执行过程中Shuffle被分成了两部分,一部分在Map任务中完成,一部分在Reduce任务中完成。



扫描二维码

获取大数据面试资料

简单描述MapReduce(mr是什么?)



☆ END ☆