maptask并行度与决定机制
1)一个job任务map阶段并行度由客户端提交的任务所决定
2)每一个split分配一个maptask并行处理
3)默认情况下,split大小=blocksize
4)切片是逐个针对每一个文件单独切片
maptask的运行机制
1、准备数据
2、创建客户端,提交任务
3、逻辑运算
4、向环形缓冲区写数据<k,v>
默认大小事100M,内存满80%之后,会产生溢写
同时进行默认的HashPartitioner分区和key.compareTo排序
5、溢写到文件(保证分区且区内是有序的)
6、Merge归并排序
小文件优化Combine TextInputFormat
//制定运行的inputformat方式,默认的方式是textinputformat
job.setInputFormatClass(CombineTextInputFormat.class);
CombineTextInputFormat.setMaxInputSplitSize(job,4194304);//最大4M
CombineTextInputFormat.setMinInputSplitSize(job,3145728);//最小3M