题目:MapReduce工作流程
画出MapReduce流程,并描述信息
答案:
MapTask:
1.客户端在提交任务之前,会先读取待处理文本,然后根据参数配置,形成一个任务分配的规划,并将信息提交给Yarn RM,并计算出MapTask数量
2.MapTask通过InputFormat接口(默认实现类为TextInputFormat)去读取待处理文本,调用map方法进行逻辑运算,通过outputController方法写入到环形缓冲区
3.环形缓冲区(默认大小100M)接收到数据后,大小达到80%就将各分区的数据进行快速排序,然后溢写到文件中
4.随后会将溢出文件中的各个分区进行归并排序,然后通过Combiner提前进行合并(可选),最后写入到磁盘中
ReduceTask:
1.ReduceTask从Map阶段所产生的文件中去读取数据
2.将所有相同分区的数据进行归并排序,并按照key进行分组,然后调用reduce方法进行运算,最后通过OutputFormat接口溢写到磁盘中