mapTask运行机制详解以及mapTask的并行度
在mapTask当中,一个文件的切片大小使用默认值是128M,就是跟我们一个block块对应大小一样

MapTask运行的整个过程 背下来
1、TextInputFormat读取数据
2、调用map逻辑,默认是一个切片(就是一个block块)对应一个mapTask
3、数据写入到环形缓冲区,默认环形缓冲区的大小是100M,换型缓冲区其实就是一个数组
4、数据一直往环形缓冲区当中写,数据在环形缓冲区当中实现分区,排序,规约,分组等
5、等到数据写到环形缓冲区的80%的时候,启动溢写线程,将内存当中80M的数据,溢写到磁盘上面去
6、等到maptask完成之后,磁盘上面可能存在很多的小文件,这些小文件已经做好了局部排序,分区,规约等步骤,再把这些小文件合并成一个大的文件
7、等待reduce阶段来拉取这个文件

第2节 mapreduce深入学习:11、maptask运行机制(多看几遍)-LMLPHP

mapTask的一些基础设置配置(mapred-site.xml中):

设置一:设置环型缓冲区的内存值大小(默认设置如下)

mapreduce.task.io.sort.mb

100

设置二:设置溢写百分比(默认设置如下)

mapreduce.map.sort.spill.percent

0.80

设置三:设置溢写数据目录(默认设置)

mapreduce.cluster.local.dir

${hadoop.tmp.dir}/mapred/local

设置四:设置一次最多合并多少个溢写文件(默认设置如下)

mapreduce.task.io.sort.factor

10

05-11 20:26