映射器能否知道正在运行的映射器数量



在Hadoop的Map-Reduce框架中,当应用程序运行时,是否可以知道程序中运行的工作器数量。工作器的数量与文件拆分的数量相同,换句话说,是否可以动态地知道文件拆分的数量?

可以通过mapred.map.tasksmared.reduce.tasks配置属性(提交作业后)查询组成作业的映射任务和化简器任务的总数。

如果您查看源代码,您可以看到这是在org.apache.hadoop.mapred.JobClient:784中设置的(是的,拆分次数相同)

// Create the splits for the job
LOG.debug("Creating splits at " + fs.makeQualified(submitSplitFile));
int maps;
if (job.getUseNewMapper()) {
  maps = writeNewSplits(context, submitSplitFile);
} else {
  maps = writeOldSplits(job, submitSplitFile);
}
job.set("mapred.job.split.file", submitSplitFile.toString());
job.setNumMapTasks(maps); // here is where mapred.map.tasks is set

相关内容

  • 没有找到相关文章

最新更新