gpt4 book ai didi

hadoop - EMR上的Hadoop-并行 map task

转载 作者:行者123 更新时间:2023-12-02 21:47:11 24 4
gpt4 key购买 nike

我已经通过AWS中的数据管道设置了EMR作业。这项工作是将CSV数据从S3传输到DynamoDB。

我的数据大小为400 MB。我设置了mapred.max.split.size = 134217728(即128 MB)。这样,我可以在监 View 中看到有3个 map task 。但是这些任务永远不会并行运行。因此,需要43分钟才能完成400 MB。任务的stderr日志始终显示按顺序运行的map任务。

我尝试了2个不同实例类型的核心节点,例如m1.small,c3.xlarge,c3.2xlarge,但无济于事。

还有其他设置/配置或更新可以使这些 map task 并行运行吗?

最佳答案

检查这是否对您有帮助:
Hadoop为处理您的导出和查询存储在DynamoDB中的数据的请求而启动的mapper守护程序的最大读取速率为每秒1 MiB,以限制所使用的读取容量。如果DynamoDB上有其他可用的预配置吞吐量,则可以通过增加映射器守护程序的数量来提高Hive导出和查询操作的性能。为此,您可以增加集群中EC2实例的数量,也可以增加在每个EC2实例上运行的映射器守护程序的数量。

您可以通过停止当前集群并使用大量EC2实例重新启动它来增加集群中EC2实例的数量。如果要从Amazon EMR控制台启动集群,请在“配置EC2实例”对话框中指定EC2实例的数量,如果要从CLI启动集群,请使用--num-instances选项。

在实例上运行的映射任务的数量取决于EC2实例类型。有关受支持的EC2实例类型以及每种实例提供的映射器数量的更多信息,请参阅Amazon EMR开发人员指南中的Hadoop配置引用。在那里,您将找到每个受支持配置的“任务配置”部分。

增加映射器守护程序数量的另一种方法是将Hadoop的mapred.tasktracker.map.tasks.maximum配置参数更改为更高的值。这样的好处是可以为您提供更多的映射器,而无需增加EC2实例的数量或大小,从而节省了资金。缺点是,将此值设置得太高会导致群集中的EC2实例内存不足。要设置mapred.tasktracker.map.tasks.maximum,请启动集群并指定Configure Hadoop bootstrap action,并将mapred.tasktracker.map.tasks.maximum的值作为bootstrap操作的参数之一传入。在下面的示例中显示。

--bootstrap-action s3n:// elasticmapreduce / bootstrap-actions / configure-hadoop \
--args -s,mapred.tasktracker.map.tasks.maximum = 10

有关引导操作的更多信息,请参阅Amazon EMR开发人员指南中的使用自定义引导操作。

关于hadoop - EMR上的Hadoop-并行 map task ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24146464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com