Amazon EMR Serverless 架构选项 - Amazon EMR

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

Amazon EMR Serverless 架构选项

Amazon EMR Serverless 应用程序的指令集架构决定了应用程序用来运行作业的处理器类型。Amazon EMR 为应用程序提供了两种架构选项:x86_64arm64。EMR Serverless 会在最新的实例可用时自动更新,因此您的应用程序始终可以使用新的实例,而无需进行额外的操作。

使用 x86_64 架构

x86_64 架构也称为 x86 64 位或 x64。x86_64 是 EMR Serverless 应用程序的默认选项。该架构使用基于 x86 的处理器,并与大多数第三方工具和库兼容。

大多数应用程序都与 x86 硬件平台兼容,可在默认的 x86_64 架构上成功运行。但如果您的应用程序与 64 位 ARM 兼容,则可以切换到 arm64,以使用 Graviton 处理器来提高性能、计算能力和内存。与在 x86 架构上运行同等大小的实例相比,在 arm64 架构上运行实例的成本更低。

使用 arm64 架构(Graviton)

AWS Graviton 处理器由 64 位 ARM Neoverse 内核 AWS 进行定制设计,利用了 arm64 架构(也称为 Arch64 或 64 位 ARM)。EMR Serverless AWS 上可用的 Graviton 系列处理器包括 Graviton3 和 Graviton2 处理器。与在 x86_64 架构上运行的同等工作负载相比,这些处理器为 Spark 和 Hive 工作负载提供了卓越的性价比。EMR Serverless 会在最新的处理器可用时自动更新,因此无需额外操作即可升级到最新的处理器。

启动支持 Graviton 的新应用程序

使用以下任一方法启动采用 arm64 架构的应用程序。

AWS CLI

要使用来自的 Graviton 处理器启动应用程序 AWS CLI,请在 ARM64 API 中指定为architecture参数。create-application在其他参数中为您的应用程序提供适当的值。

aws emr-serverless create-application \ --name my-graviton-app \ --release-label emr-6.8.0 \ --type "SPARK" \ --architecture "ARM64" \ --region us-west-2
EMR Studio

要从 EMR Studio 使用 Graviton 处理器启动应用程序,请在创建或更新应用程序时选择 arm64 作为架构选项。

将现有应用程序配置为使用 Graviton

您可以将现有的 Amazon EMR 无服务器应用程序配置为使用 Graviton (arm64) 架构和 SDK 或 EMR Studio。 AWS CLI

将现有应用程序从 x86 转换为 arm64
  1. 确认您使用的是支持 architecture 参数的 AWS CLI/SDK 的最新主版本。

  2. 确认没有作业正在运行,然后停止应用程序。

    aws emr-serverless stop-application \ --application-id application-id \ --region us-west-2
  3. 要更新应用程序以使用 Graviton,请在 update-application API 中为 architecture 参数指定 ARM64

    aws emr-serverless update-application \ --application-id application-id \ --architecture 'ARM64' \ --region us-west-2
  4. 要验证应用程序的 CPU 架构是否为现在 ARM64,请使用 get-application API。

    aws emr-serverless get-application \ --application-id application-id \ --region us-west-2
  5. 准备就绪后,重启应用程序。

    aws emr-serverless start-application \ --application-id application-id \ --region us-west-2

使用 Graviton 的注意事项

在使用 arm64 启动支持 Graviton 的 EMR Serverless 应用程序之前,确认以下内容。

库兼容性

当您选择 Graviton(arm64)作为架构选项时,请确保第三方软件包和库与 64 位 ARM 架构兼容。有关如何将 Python 库打包到与所选架构兼容的 Python 虚拟环境中的信息,请参阅 将 Python 库与 EMR Serverless 结合使用

要详细了解如何将 Spark 或 Hive 工作负载配置为使用 64 位 ARM,请参阅上的 AWS Graviton 入门存储库。 GitHub该存储库包含一些基本资源,有助于您开始使用基于 ARM 的 Graviton。