Mapreduce api给出错误的映射计数

时间:2017-05-13 11:11:02

标签: hadoop mapreduce yarn

我试图通过使用下面的代码来获取mapreduce程序中的映射器数量。我得到 mapreduce.job.maps的值为2 ,但程序实际上启动 6 mappers ,因为有6个小文件。有人遇到类似的问题吗?

代码
job.getConfiguration().get("mapreduce.job.maps")

日志:
num of mappers : 2 ... 17/05/13 06:56:47 INFO input.FileInputFormat: Total input paths to process : 6 17/05/13 06:56:47 INFO mapreduce.JobSubmitter: number of splits:6 ... 17/05/13 06:56:48 INFO mapreduce.Job: Running job: job_1494588725898_0047 17/05/13 06:56:59 INFO mapreduce.Job: Job job_1494588725898_0047 running in uber mode : false 17/05/13 06:56:59 INFO mapreduce.Job: map 0% reduce 0% ... 17/05/13 06:57:39 INFO mapreduce.Job: map 100% reduce 100% 17/05/13 06:57:40 INFO mapreduce.Job: Job job_1494588725898_0047 completed successfully 17/05/13 06:57:40 INFO mapreduce.Job: Counters: 49 File System Counters ... Job Counters Launched map tasks=6 Launched reduce tasks=2

1 个答案:

答案 0 :(得分:0)

这不是问题,而是MapReduce的实际行为。

mapreduce.job.maps属性的值是默认值 2 。映射器任务的数量将始终根据文件输入拆分确定,在此方案中 6 。要获得为作业启动的实际地图任务数,您必须等到作业完成。