Hadoop 带有mapreduce.Job的SetNumMapTask

Hadoop 带有mapreduce.Job的SetNumMapTask,hadoop,mapreduce,Hadoop,Mapreduce,如何使用org.apache.hadoop.mapreduce.Job设置映射任务的数量?该函数似乎不存在。。。但是它存在于org.apacache.hadoop.mapred.JobConf中 谢谢 AFAIK,setNumMapTasks不再受支持 它只是对框架的一个提示(即使在旧的API中也是如此),并不能保证您只能获得指定数量的映射。地图的创建实际上是由您在工作中使用的InputFormat控制的 您可以根据需要调整以下属性: mapred.min.split.size mapred.

如何使用org.apache.hadoop.mapreduce.Job设置映射任务的数量?该函数似乎不存在。。。但是它存在于org.apacache.hadoop.mapred.JobConf中


谢谢

AFAIK,setNumMapTasks不再受支持

它只是对框架的一个提示(即使在旧的API中也是如此),并不能保证您只能获得指定数量的映射。地图的创建实际上是由您在工作中使用的InputFormat控制的

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

  • mapred.min.split.size

  • mapred.max.split.size

由于您处理的是小数据,因此将mapred.max.split.size设置为较低的值就可以了。您可以在作业中使用setMaxInputSplitSize(作业,长)来更改此设置。long参数是以字节为单位的拆分大小,您可以将其设置为所需的值


另外,使用dfs.block.size将小数据的HDFS块大小设置为较小的值,谢谢您的回答。在数据量小但计算任务密集的情况下,设置map任务的数量将非常重要。我看了一下FileInputFormat API,我不太清楚如何使用它来处理大量的映射任务。。。你能给我一个提示吗?它与setMaxInputSplitSize(Job,long)配合使用效果很好。非常感谢你。