首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MapReduce:增加并发映射器任务的数量

问MapReduce:增加并发映射器任务的数量
EN

Stack Overflow用户
提问于 2017-03-03 18:02:32
回答 2查看 1.2K关注 0票数 2

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

如何限制每个映射器的内存使用或增加并发映射器任务的数量?当前预计完成时间为100小时,将这些文件合并到较少数量的较大文件,如400MB文件,是否会增加处理时间?

EN

回答 2

Stack Overflow用户

发布于 2017-04-17 15:29:07

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

使用了5个r3.2xlarge实例,但运行的并发任务数仍然只有30个

要查找Hadoop2EMR集群可以支持的并行映射/缩减程序,请参阅本文AWS EMR Parallel Mappers?

Ex: r3.2xlarge *5内核:

代码语言:javascript
复制
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个映射器,而其他映射器将简单地排队。

如果您想要更多并行映射器,您可能希望为映射器配置更少的内存(基于数学)和更少的堆。

票数 2
EN

Stack Overflow用户

发布于 2017-03-15 01:56:27

你要找的是CombineFileInputFormat。

请记住,映射狭缝大小默认情况下= HDFS数据块大小。更改其中一个不会影响另一个。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42575872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档