Skip to content

Latest commit

 

History

History
18 lines (11 loc) · 1.3 KB

02-0MapReduce介绍.md

File metadata and controls

18 lines (11 loc) · 1.3 KB

MapReduce

MapReduce是什么

  1. MapReduce是一种分布式计算框架 ,以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。主要用于搜索领域,解决海量数据的计算问题。
  2. MR有两个阶段组成:Map(映射)和Reduce(归约),用户只需实现map()和reduce()两个函数,即可实现分布式计算。
    1. Map()负责把一个大的block块进行切片并计算。
    2. Reduce() 负责把Map()切片的数据进行汇总、计算。

工作原理

img

  1. 第一步对输入的数据进行切片,每个切片分配一个map()任务,map()对其中的数据进行计算,对每个数据用键值对的形式记录,然后输出到环形缓冲区。
  2. map()中输出的数据在环形缓冲区内进行快排,每个环形缓冲区默认大小100M,当数据达到80M时(默认),把数据输出到磁盘上。形成很多个内部有序整体无序的小文件。
  3. 框架把磁盘中的小文件传到Reduce()中来,然后进行归并排序,最终输出。