更新时间:2021-12-06 来源:黑马程序员 浏览量:
MapTask作为MapReduce工作流程的前半部分,它主要经历了5个阶段,分别是Read阶段、Map阶段、Collect阶段、Spill阶段和Combine阶段,如下图所示。
关于MapTask这5个阶段的相关介绍如下:
(1) Read阶段: MapTask通过用户编写的RecordReader,从输人的InputSplit中解析出一个个key/value。
(2) Map阶段:将解析出的key/value交给用户编写的map()函数处理,并产生一系列新的key/value。
(3) Collect阶段:在用户编写的map()函数中,数据处理完成后,一般会调用outputCollector.collct()输出结果,在该丽数内部,它会将生成的key/value分片(通过调用partitioner),并写入一个环形内存缓冲区中。
(4) Spill阶段:即“溢写”,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写人本地磁盘前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。
(5) Combine阶段:当所有数据处理完成以后,MapTask会对所有临时文件进行一次合并,以确保最终只会生成一个数据文件。
猜你喜欢:
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19