如何使用org.apache.hadoop.mapreduce.Job设置地图任务的数量?该函数似乎不存在...但它存在于org.apacache.hadoop.mapred.JobConf ...
谢谢!
答案 0 :(得分:5)
不再支持AFAIK, setNumMapTasks 。
它只是对框架的暗示(即使在旧的API中),并不保证您只获得指定数量的地图。地图创建实际上由您在工作中使用的输入格式管理。
您可以根据需要调整以下属性:
<强> mapred.min.split.size 强>
<强> mapred.max.split.size 强>
由于您处理的是小数据,因此将 mapred.max.split.size 设置为较低的值应该可以解决问题。您可以在作业中使用 setMaxInputSplitSize(Job,long)来改变它。 long参数是以字节为单位的拆分大小,您可以将其设置为所需的值。
此外,使用 dfs.block.size 将HDFS块大小设置为较小的小数据值。