0

在配置 Map Reduce 作业时,我知道可以使用 方法设置 reduce 任务的数量job.setNumReduceTasks(2);

我们可以设置地图任务的数量吗?

我没有看到任何方法可以做到这一点。

如果没有这样的功能,有人知道为什么这个框架有能力有超过 1 个 reduce 任务,但不能超过 1 个 map 任务吗?

4

2 回答 2

0

映射任务的数量不是程序员设置的东西,而是hadoop框架的东西,特别是TaskTracker,它创建的映射器数量与来自HDFS的InputFile的输入拆分数量(通常为64mb但可以更改)一样多。 .

于 2014-02-14T17:11:59.227 回答
0

曾经有一个属性用于设置地图任务的数量,即setNumMapTasks。但这只是对框架的提示,并不能保证您只会获得指定数量的地图。地图创建实际上由您在工作中使用的InputFormat管理。这就是不再支持它的原因。

如果您对框架创建的映射器数量不满意,可以尝试根据您的要求调整以下 2 个属性的值:

- mapred.min.split.size
- mapred.max.split.size

于 2014-02-14T22:03:33.097 回答