利用现有集群/EMR-S 应用程序创建目标 EMR 集群/EMR-S 应用程序 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

利用现有集群/EMR-S 应用程序创建目标 EMR 集群/EMR-S 应用程序

如果您已经有一个运行源 Spark 版本的 EMR EC2 集群,则可以克隆它以创建一个配置相同但更新了 EMR 发行版本的新集群,以便在升级过程中运行验证步骤。

步骤:

  1. 登录 AWS 管理控制台 并打开 Amazon EMR 控制台。

  2. 在左侧导航窗格中,选择 EMR on 下的集群。 EC2

  3. 从集群列表中:

    • 如果需要,请使用搜索或筛选器来查找您的集群。

    • 选中要克隆的集群旁边的复选框。

    • “克隆” 选项将出现在列表的顶部。选择克隆。

    • 如果集群已配置步骤,请选择包括步骤,然后选择继续,将这些步骤与其他集群设置一起克隆。

  4. 查看已从原始集群复制的新集群的设置。

  5. 将 Amazon EMR 发布版本更新到目标版本。

  6. 作为提高成本效益的最佳实践,在将集群配置为根据工作负载需求自动调整容量时,可以考虑启用自动扩展。

  7. 如果您对配置感到满意,请选择创建集群以启动新集群。

  8. 等待集群进入运行状态并记下集群 ID。当系统提示您验证更新的应用程序时,请向代理提供此 ID。

  9. 如果您更喜欢从头开始创建新集群,请参阅 EMR 文档: https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-gs.html。

将 EMR 无服务器应用程序克隆到目标发行版

没有直接的方法可以将 EMR Serverless 应用程序克隆到具有不同 EMR 发行版本的新应用程序。相反,您可以使用 EMR Serverless SDK/CLI 或控制台来创建新应用程序并重复使用现有应用程序中的配置。

以下是一些入门的帮助 CLI 命令:

aws emr-serverless get-application --application-id XXX > old-config.json cat old-config.json | jq '{ name: (.application.name + "<suffix to differentiate name from old application>"), releaseLabel: "<target EMR release version>", type: .application.type, initialCapacity: .application.initialCapacity, maximumCapacity: .application.maximumCapacity, autoStartConfiguration: .application.autoStartConfiguration, autoStopConfiguration: .application.autoStopConfiguration, tags: .application.tags, architecture: .application.architecture, runtimeConfiguration: .application.runtimeConfiguration, monitoringConfiguration: .application.monitoringConfiguration }' > new-config.json aws emr-serverless create-application --cli-input-json file://new-config.json

注意:确保新应用程序的任务执行角色允许 EMR Serverless 担任该角色。查看角色的信任策略。如果您要重复使用旧应用程序中的相同任务执行角色,请更新信任策略以包含新应用程序,如下所示:

#Replace the old application id and new application id in the policy { "Version": "2012-10-17", "Statement": [ { "Sid": "ServerlessTrustPolicy", "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:SourceArn": [ "arn:aws:emr-serverless:us-east-1:<account>:/applications/<old application id>", "arn:aws:emr-serverless:us-east-1:<account>:/applications/<new application id>" ] } } } ] }