并行运行多个步骤的注意事项 - Amazon EMR

并行运行多个步骤的注意事项

  • 并行运行的步骤可以按任何顺序完成,但队列中的待处理步骤要按照它们提交的顺序转换为运行状态。

  • 为集群选择步骤并发级别时,必须考虑主节点实例类型是否满足用户工作负载的内存要求。主步骤执行程序进程在每个步骤的主节点上运行。与一次运行一个步骤相比,并行运行多个步骤要求主节点拥有更多的内存和更高的 CPU 利用率。

  • 要对并发步骤实现复杂的计划和资源管理,您可以使用 YARN 计划功能(如 FairSchedulerCapacityScheduler)。例如,您可以将 FairSchedulerqueueMaxAppsDefault 集合一起使用,以防止一次运行超过特定数量的作业。

  • 步骤并发级别取决于资源管理器的配置。例如,如果 YARN 配置的并行度仅为 5,则即使 StepConcurrencyLevel 设置为 10,您也只能让五个 YARN 应用程序并行运行。有关配置资源管理器的更多信息,请参阅《Amazon EMR 版本指南》中的配置应用程序

  • 当集群的步骤并发级别大于 1 时,不能添加具有 ActionOnFailure(CONTINUE 除外)的步骤。

  • 如果集群的步骤并发级别大于 1,步骤 ActionOnFailure 功能将不会激活。

  • 如果集群的步骤并发级别为 1 但有多个运行步骤,则 TERMINATE_CLUSTER ActionOnFailure 可能会激活,但 CANCEL_AND_WAIT ActionOnFailure 不会。当集群步骤并发级别大于一时会出现这种边缘情况,但在运行多个步骤时会减少发生该情况。

  • 使用 EMR 自动扩展可以基于 YARN 资源向上和向下扩展,以防止资源争用。有关更多信息,请参阅《Amazon EMR 管理指南》中的将自动伸缩与实例组的自定义策略结合使用

  • 当您降低步骤并发级别时,EMR 允许在减少步骤数之前完成任何正在运行的步骤。如果资源因集群运行的并发步骤太多而耗尽,我们建议手动取消所有正在运行的步骤以释放资源。