控制Map和减少生成的作业数?

uttx8gqw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(265)

我试图了解may map reduce jobs是如何开始一项任务的,以及如何控制mr jobs的数量。
假设我有一个1tb的hdfs文件,我的块大小是128mb。对于这个1tb文件上的mr任务,如果我将输入拆分大小指定为256mb,那么会启动多少map和reduce作业。据我所知,这取决于分割大小。i、 eMap作业的数量=文件的总大小/拆分大小,在本例中,计算结果为 1024 * 1024 MB / 256 MB = 4096 . 所以hadoop启动的map任务数是4096。
1) 我说得对吗?
2) 如果我认为这是一个不合适的数字,我可以通知hadoop开始更少的工作,甚至更多的工作。如果是,怎么做?
那么产生的减速机作业的数量呢,我认为这完全是由用户控制的。
3) 但是我应该如何以及在哪里提及所需的减速机工作的数量。

rjzwgtxy

rjzwgtxy1#

1是的,你说得对。Map器数量=(数据大小)/(输入拆分大小)。所以,你的情况是4096
据我了解,在hadoop-2.7之前,您只能提示系统通过创建Map器的数量 conf.setNumMapTasks(int num) 但Map绘制者将自己创建。在hadoop-2.7中,可以通过 mapreduce.job.running.map.limit . 看到这张吉拉的票了吗
默认情况下,减速器的数量为1。您可以按job.setnumreducetasks(integer\u numer)更改它;
也可以从cli提供此参数 -Dmapred.reduce.tasks=<num reduce tasks>

相关问题