MapReduce 流程图
一.任务提交启动一些检查(待处理的文件和存放处理后的文件是否存在)
经过inputFormat (inputformat中产生文件的切片和输出k,v对)
根据数据来切片(切片的规则 剩余的部分 > 切片的大小 * 1.1),map任务的切分根据数据量的大小。(默认一个块128M),
mapper执行任务的数量通常由输入的总大小决定(即输入文件的块总数可以切分成几片就有几个mapper任务)。
inputformat 简单类实现图
可以自定义 inputformat 实现类,实现类中具体的方法,或者继承实现类,重写类中的方法,指定具体的分片规则,和输出的k,v对。
二. 框架进行分组,并传递给Mapper.
1) mapper的产生的数据会放到一个环形缓冲区中。在环形缓冲区中会进行:分区,排序
2)分区:根据reduce任务数量决定mapper产生的数据分几个区(partitioner可以自定义实现分区的规则)。 可