简介

map-reduce是hadoop分布式计算框架,其采取的主要思想是分治思想,将程序跑在集群的多个机器上从而达到并行计算的目的。
大致流程为:数据以一条记录的方式用过map方法映射成K,V,相同的key为一组,这一组数据调用reduce方法,在方法内迭代计算这些数据。
可由下面简单图表示:
mapreduce简介图.PNG

Map阶段

通常我们处理数据时是一行一行处理的,以一条记录为单位,将一条记录处理后转换为其他记录。
简单的来说:map阶段是做数据映射,一条记录可转换为多条记录

Reduce阶段

以一组数据为单位进行计算,在做reduce计算之前,数据应该分好组,数据格式应该为:key-value.
简单的来说reduce阶段。多相同key的多条数据进行处理,转换为多条记录。

map-reduce

block是文件物理的概念,在大数据计算时,由以下两种情况,block数=map数不太好
split是逻辑上的概念,确定map任务读取hdfs文件的范围

  1. 文件中每一行数据要处理很久,我们可以调整split数>block数,增加map任务,加快计算
  2. 文件处理很快,可以调整split数<block数,减少不必要的map任务

计算类型:io密集型,cpu密集型
split根据计算需要,动态调整map任务大小:
split和map任务 1:1

reduce任务的多少由代码指定,处理的数据组为基本单位,组不可切分。