Map任务的个数
Mapper数据过大的话,会产生大量的小文件,过多的Mapper创建和初始化都会消耗大量的硬件资源。Mapper数太小,并发度过小,Job执行时间过长,无法充分利用分布式硬件资源。
Mapper数量由什么决定?
- 输入文件数目
- 输入文件的大小
- 配置参数
输入目录中文件数量决定多少个Map会被运行起来,应用针对每一个分片运行一个Map。对于每一个输入的文件会有一个map split。如果输入文件超过了HDFS块的大小(128M)那么对于同一个输入文件会有多余2个的Map运行起来。
涉及参数:
mapreduce.input.fileinputformat.split.minsize //启动map最小的split size大小,默认0
mapreduce.input.fileinputformat.split.maxsize //启动map最大的split size