文章目录
三、请描述mapReduce中shuffle阶段的工作流程,如何优化shuffle阶段?
四、请描述mapReduce中combiner的作用是什么,一般使用情景,哪些情况不需要,及和reduce的区别?
五、如果没有定义partitioner,那数据在被送达reducer前是如何被分区的?
七、有可能使 Hadoop 任务输出到多个目录中么?如果可以,怎么做?
十一、给你一个1G的数据文件。分别有id,name,mark,source四个字段,按照mark分组,id排序,手写一个MapReduce?其中有几个Mapper?
MapReduce核心高频面试题
一、ReduceTask工作机制
1、Copy阶段:ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。
2、Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。
3、Sort阶段:按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数据。为了将key相同的数据聚在一起,Hadoop采用了基于排序的策略。由于各个MapTask已经实现对自己的处理结果进行了局部排序,因此,ReduceTask只需对所有数据进行一次归并排序即可。
4、Reduce阶段:reduce()函数将计算结果写到HDFS上。