MAPREDUCE:增加并发映射器任务的数量



我正在使用AWS EMR运行地图减少作业。我的输入集包含大约15kb的100万个文件。由于输入文件很小,因此这将导致大量映射器。因此,我将S3块大小更改为20KB,并使用了5 r3.2xlarge实例,但是同时运行的任务数量仍然只有30个。在减小块大小或减小块大小之后,工作现在不应该现在运行更多的并发映射器。,每个映射器取得的内存仍然相同吗?

如何限制每个映射器的内存使用情况或增加并发映射器任务的数量?当前的预期完成时间是100小时,将这些文件结合到较小的较大文件(例如400MB文件),增加处理时间吗?

减小块大小可以增加特定作业所需的映射器数量,但不会增加群集可以在给定点运行的映射器的平行数量,也不会增加用于这些的内存的内存映射者。

使用了5个R3.2XLARGE实例,但正在运行的并发任务数为 仍然只有30

找到Hadoop 2 EMR群集可以支持的并行地图/还原器,请参阅本文AWS AWS EMR并行映射?

ex:r3.2xlarge * 5核心:

mapreduce.map.memory.mb 3392    3392
yarn.scheduler.maximum-allocation-mb    54272
yarn.nodemanager.resource.memory-mb     54272

一旦核心节点可以具有54272/3392 = 16个映射器。

因此,群集可以并联16*5 = 80映射器。

因此,如果您的工作像1000个映射器一样旋转,则群集可以启动80个映射器,并在节点上使用预配置的内存和堆,而其他映射器将简单地排队。

如果您想要更多的并行映射器,则可能需要更少的内存(基于该数学),而对映射器的堆更少。

您正在寻找的是组合fileInputformat。

默认情况下,请记住地图缝隙大小= HDFS块大小。改变一个不会影响另一个。

请点击链接:http://bytepadding.com/big-data/map-reduce/understanding-map-reduce-the-missing-guide/

最新更新