1.mapper()方法做业务逻辑处理,然后将数据传到分区方法中,给数据标记好分区,将数据发送到环形缓冲区环形缓冲区默认100M,达到80%的调值进行溢写操作
2.溢写之前会进行排序,排序的规则是字典序排序,排序的手段呢是快排
溢写会产生很多溢写文件,溢写文件默认达到10个会进行合并,合并时采用的算法是归并排序
3.他可以进行combiner局部帮合的操作,前操是局部整合的结果不会对最终的结果有影响
4.等到所有的maptask运行完毕,会启动一定数量的reducetask,并告知reducetask读取数据的范围(也就是分区)
5.reduceTask发起拉取线程,去map端拉取数据,拉过来的数据会先存储到内存中,内存放不下了就放到磁盘中,等到数据拉取完毕之后会再进行一个归井排序然后再对数据进行分组,以组为单位将数据发送到reduce()方法中
MR的shuffle过程
MapReduce在处理大数据时,首先通过mapper进行业务逻辑处理,然后分区并利用环形缓冲区进行溢写操作。溢写前进行字典序排序,使用快速排序。溢写文件在达到一定数量后进行归并排序。Combiner进行局部聚合,不影响最终结果。所有map任务完成后,启动reduceTask,它们从map端拉取数据,先存于内存,满后转存磁盘,最后进行归并排序和分组处理。
摘要由CSDN通过智能技术生成