1.并行度决定机制
![](https://i-blog.csdnimg.cn/blog_migrate/94886c819604e3a94381ca8919ee0648.png)
2.MapTask工作机制
![](https://i-blog.csdnimg.cn/blog_migrate/df8e02cb1d20363aa5bcef1b01215422.png)
(1)
Read阶段:Map Task通过用户编写的RecordReader,从输入的inputSplit中解析出一个个的key/value
(2)
Map阶段:将解析出的key/value交给用户编写的map()函数处理,并产生一系列新的key/value
(3)
Collect阶段:在用户编写的map()函数处理完成后,通常会调用OutputCollector.collect()将结果输出。在该函数内部,会将生成的key/value进行分区(调用Partitioner),并写入一个环形内存缓冲区
(4)
Spill阶段:即“溢写”阶段,当环形缓冲区满后(通常达到80%)会将数据写入本地磁盘,生一个临时文件