简答题 简述MapReduce操作的全部流程。
【正确答案】MapReduce处理数据过程主要分成2个阶段:map阶段和reduce阶段,先执行map阶段,再执行reduce阶段。1)在正式执行map函数前,需要对输入进行“分片”(就是将海量数据分成大概相等的“块”,hadoop的一个分片默认是64M),以便于多个map同时工作,每一个map任务处理一个“分片”。2)分片完毕后,多台机器就可以同时进行map工作了。map函数要做的事情,相当于对数据进行“预处理”,输出所要的“关切”。map对每条记录的输出以pair的形式输出。3)在进入reduce阶段之前,还要将各个map中相关的数据(key相同的数据)归结到一起,发往一个reducer。4)接下来进入reduce阶段。相同的key的map输出会到达同一个reducer。reducer对key相同的多个value进行“reduce操作”,最后一个key的一串value经过reduce函数的作用后,变成了一个value。
【答案解析】