3

如何使用 org.apache.hadoop.mapreduce.Job 设置地图任务的数量?该功能似乎不存在......但它存在于org.apacache.hadoop.mapred.JobConf......

谢谢 !

4

1 回答 1

6

AFAIK,不再支持setNumMapTasks

这只是对框架的提示(即使在旧 API 中),并不能保证您只会获得指定数量的地图。地图创建实际上由您在工作中使用的InputFormat管理。

您可以根据需要调整以下属性:

  • mapred.min.split.size

  • mapred.max.split.size

由于您正在处理小数据,因此将mapred.max.split.size设置为较低的值应该可以解决问题。你可以在你的工作中使用setMaxInputSplitSize(Job, long)来改变它。long 参数是以字节为单位的拆分大小,您可以将其设置为所需的值。

此外,对于小数据,使用dfs.block.size将 HDFS 块大小设置为较小的值。

于 2013-10-01T10:35:39.327 回答