mapreduce任务数

dw1jzc5e  于 2021-06-02  发布在  Hadoop
关注(0)|答案(3)|浏览(347)

我需要一些帮助,关于如何在我的应用程序中获得正确数量的map和减少任务。有没有办法找到这个号码?
谢谢

nuypyhwy

nuypyhwy1#

Map器的数量取决于hdfs中的文件块大小(默认情况下)和输入分割大小(如果我们指定的不是默认值)。
如果您有128mb的文件,并且hdfs块大小是64mb,那么由于默认行为,Map任务的数量将是2。
如果您的输入分割大小是32mb,而hdfs块大小是64mb,那么Map任务的时间数将是4。因此,map任务依赖于上面定义的所有三个因素。
reduce任务的数量取决于 conf.seNumReduceTask(num) 或者 mapreduce.job.reduces ( mapred.reduce.tasks 已弃用)。

2mbi3lxu

2mbi3lxu2#

在一个应用程序执行之前,不可能得到它的map和reduce任务的实际数量,因为在执行之前无法准确地确定任务失败、重新尝试和推测性执行尝试的因素,所以可以导出近似的任务数量。
mapreduce作业的Map任务总数取决于其输入文件及其文件格式。
对于每个输入文件,将计算分割,并为每个输入分割调用一个Map任务。
分割大小将根据,

input_split_size = max(mapreduce.input.fileinputformat.split.minsize, min(mapreduce.input.fileinputformat.split.maxsize, dfs.blocksize))

如果属性
mapreduce.input.fileinputformat.split.minsize mapreduce.input.fileinputformat.split.maxsize 默认情况下,文件的输入拆分大小将大致等于其大小 blocksize 考虑到文件是可拆分的。
Map任务的总数将等于每个文件的输入拆分数之和。
减少任务的总数,它是 1 (默认)或等于 mapreduce.job.reduces .

5q4ezhmt

5q4ezhmt3#

Map任务数等于任何作业中的输入拆分数,您可以找到其中的任何一个,以找到可以显式设置的Map器数和还原器数。此外,一旦运行map reduce作业,就可以观察生成的日志,找出作业中Map器和还原器的数量。

相关问题