参考答案: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
我来回答:
最新试题