maper数量控制
- 决定参数
- 配置参数
- mapreduce.input.fileinputformat.split.minsize //启动map最小的split size大小,默认0
- mapreduce.input.fileinputformat.split.maxsize //启动map最大的split size大小,默认256M
- dfs.block.size //block块大小,默认64M
- mapreduce.job.maps //显示设定的期望的mapper的数量
- 计算公式:splitSize = Math.max(minSize, Math.min(maxSize, blockSize));
- 输入文件数目与单个文件大小
- 不进行显式设定 splitSize 和 mapper 数量参数时,通常一个文件分配给一个独立的mapper
- 显式设定了参数时
- 若只显式设定 splitSize 或 mapper数量 中的一个
- Hadoop并不会按照设定的参数进行分片大小和mapper数量的设置,而是按照blocksize的大小进行切分和创建mapper
- 若同时显式设定了 splitSize 和 mapper 数量
- 此时会按照设定的 splitSize 大小进行设置分片,而 mapper 的数量并不一定与显式设定的 mapper 数量一致,而是对输入的文件大小和数量按照显式设定的 splitSize 的大小对输入文件切分后所得的 mapper 数量
- 对输入文件进行切分时
- 若单个文件大小 < splitSize,则该单个文件将分配给一个独立的mapper
- 若单个文件大小 &
- 若只显式设定 splitSize 或 mapper数量 中的一个
- 配置参数