MapReduce api给出了错误的映射器计数



我试图使用以下代码段来获取mapreduce程序中的映射器数量。我得到 mapreduce.job.maps 的值为 2,但程序实际上启动了 6 个映射器,因为有 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

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

您为mapreduce.job.maps属性获取的值是其默认值 2 。映射器任务的数量将始终由文件输入拆分确定,在这种情况下6。要获得为作业启动的实际地图任务数,您必须等到作业完成。

最新更新