1.并行度决定机制

2.MapTask工作机制

(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%)会将数据写入本地磁盘,生一个临时文件。注意,在将数据写入本地磁盘之前,会先对数据进行一次本地排序,并在必须是对数据进行合并、压缩等操作
- 利用快速排序算法对缓冲区内的数据进行排序,其排序方式为:先按照分区编号partition进行排序,然后按照key(Hash值)进行排序。。这样数据将以分区为单位聚集在一起,