在配置Map Reduce作业时,我知道可以使用job.setNumReduceTasks(2);
方法设置reduce任务的数量。
我们可以设置地图任务的数量吗?
我没有看到任何方法来做到这一点。
如果没有这样的功能,有人知道为什么这个框架能够有超过1个reduce任务,但不能超过1个map任务吗?
答案 0 :(得分:0)
映射任务的数量不是程序员设置的东西,而是hadoop框架的东西,特别是TaskTracker创建的输入分割数(通常为64mb但可以更改)的输入分割数量与HDFS ...
答案 1 :(得分:0)
以前有用于设置地图任务数量的属性,即 setNumMapTasks 。 Bur它只是对框架的暗示,并不能保证你只能获得指定数量的地图。地图创建实际上由您在作业中使用的输入格式管理。这就是它不再受支持的原因了。
如果您对框架创建的地图制作者数量不满意,可以尝试根据您的要求调整以下2个属性的值:
- mapred.min.split.size
- mapred.max.split.size