【问题标题】:Why the job tasks of an AWS EMR job are executed in sequence为什么 AWS EMR 作业的作业任务是按顺序执行的
【发布时间】:2014-06-29 19:52:17
【问题描述】:

我将一个客户 jar 上传到 S3,并希望在 EMR 中运行该作业。 所以在集群配置中,我选择了 1 个 master 和 2 个 worker,指定了 jar 路径、输入路径和输出路径。一切都很好。

一旦它开始运行客户jar,我发现我无法查看工作任务,因为它告诉我“没有可用的任务”,这很奇怪。而且做完工作后发现emr一共创建了306个task,但是查看每个task的syslog发现都是按顺序执行的。比如maptask260在19:40:35结束,maptask261从19:40:40开始,maptask262在261完成后开始。

我了解 EMR 根据作业大小创建一堆任务,我认为所有任务应该并行执行,这意味着,一旦作业开始运行,它应该创建,比如说 360 任务,并且所有任务应该同时开始工作。

不确定是我理解有误还是配置有误?

有人可以帮忙吗?

【问题讨论】:

    标签: amazon-web-services emr amazon-emr


    【解决方案1】:

    这些任务应该在 EMR 中并行运行,但您只启动了 2 个工作器并且您没有指定哪种实例类型。如果您有 306 个任务并且希望所有任务并行运行,您可能需要启动 2 个以上的任务。

    例如,使用 EMR 上的 Hadoop 1,您可以在 m1.xlarge 实例上获得 8 个映射器插槽。要并行运行 306 个任务,您必须启动 39 个 m1.xlarge 机器。

    我不确定这是否是您想要的,因为您将为每台机器支付一整个小时的费用,即使 map-reduce 作业执行 5 分钟也是如此。

    【讨论】:

    • 我启动了两个 m1.medium 实例。这只是为了测试目的,所以我没有使用两个很多worker......但是即使两个实例不足以并行运行306个任务,至少它应该让2或3个任务同时运行...(以我个人的理解)...为什么所有的任务都是按顺序执行的?好混乱……
    • 如果您有超过 1 个可用插槽,则 map/reduce 作业中的 mapper 任务(或 reducer 任务)应该并行运行。
    猜你喜欢
    • 2019-09-07
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2019-03-30
    相关资源
    最近更新 更多