

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

# Amazon EMR Serverless 架构选项
<a name="architecture"></a>

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

**Topics**
+ [使用 x86\_64 架构](#x86)
+ [使用 arm64 架构（Graviton）](#arm64)
+ [启动支持 Graviton 的新应用程序](#arm64-new)
+ [将现有应用程序配置为使用 Graviton](#arm64-existing)
+ [使用 Graviton 的注意事项](#arm64-considerations)

## 使用 x86\_64 架构
<a name="x86"></a>

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

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

## 使用 arm64 架构（Graviton）
<a name="arm64"></a>

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

## 启动支持 Graviton 的新应用程序
<a name="arm64-new"></a>

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

------
#### [ Amazon CLI ]

要使用来自的 Graviton 处理器启动应用程序 Amazon 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
<a name="arm64-existing"></a>

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

**将现有应用程序从 x86 转换为 arm64**

1. 确认您使用的是支持 `architecture` 参数的 [Amazon CLI/SDK](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/emr-serverless/index.html#cli-aws-emr-serverless) 的最新主版本。

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

   ```
   aws emr-serverless stop-application \
    --application-id {{application-id}} \
    --region {{us-west-2}}
   ```

1.  要更新应用程序以使用 Graviton，请在 `update-application` API 中为 `architecture` 参数指定 `ARM64`。

   ```
   aws emr-serverless update-application \
    --application-id {{application-id}} \
    --architecture 'ARM64' \
    --region {{us-west-2}}
   ```

1. 要验证应用程序的 CPU 架构是否为现在 ARM64，请使用 `get-application` API。

   ```
   aws emr-serverless get-application \
    --application-id {{application-id}} \
    --region {{us-west-2}}
   ```

1. 准备就绪后，重启应用程序。

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

## 使用 Graviton 的注意事项
<a name="arm64-considerations"></a>

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

### 库兼容性
<a name="arm64-prereqs-library"></a>

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

要了解更多信息，请参阅上的 [Amazon Graviton 入门](https://github.com/aws/aws-graviton-getting-started)知识库。 GitHub该存储库包含一些基本资源，有助于您开始使用基于 ARM 的 Graviton。