MapRduce:就是一种分布式计算框架(一定数据按行算)
5个阶段:input ,map(里面由kv值,按照k值进行分区) ,shuffle(最难) , reduce(获取前面的v值进行分组) ,output
shuffle过程实现的功能
**分区:**决定当前的Key交给那个reduce进行处理
相同的key,必须由同一个reduce进行处理
默认:根据key的hash值 对reduce个数取余
**分组:**将相同的key的value进行合并
key相等的话,将分到同一个组里
Map Reduce阶段,一行调用一次map方法,一种key调用一次reduce
**排序:**按照key的指导顺序进行排序
详细的过程(非常重要,Map Reduce优化,面试必考)
—》map端shuffle
—》spill:溢写
—》每一个map处理之后的结果将会进入环形缓冲区(内存:100MB)
—》分区:对每一条key和value进行分区(打标签)
hadoop 1 reduce0
hive 1