

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon EMR Serverless 架構選項
<a name="architecture"></a>

Amazon EMR Serverless 應用程式的指示集架構會決定應用程式用來執行任務的處理器類型。Amazon EMR 為您的應用程式提供兩種架構選項：**x86\$164** 和 **arm64**。EMR Serverless 會在最新一代的執行個體可用時自動更新，因此您的應用程式可以使用較新的執行個體，而無需您付出額外的努力。

**Topics**
+ [使用 x86\$164 架構](#x86)
+ [使用 arm64 架構 (Graviton)](#arm64)
+ [使用 Graviton 支援啟動新應用程式](#arm64-new)
+ [設定現有應用程式以使用 Graviton](#arm64-existing)
+ [使用 Graviton 時的考量事項](#arm64-considerations)

## 使用 x86\$164 架構
<a name="x86"></a>

**x86\$164** 架構也稱為 x86 64 位元或 x64。**x86\$164** 是 EMR Serverless 應用程式的預設選項。此架構使用 x86 型處理器，並與大多數第三方工具和程式庫相容。

大多數應用程式都與 x86 硬體平台相容，並且可以在預設 **x86\$164** 架構上成功執行。不過，如果您的應用程式與 64 位元 ARM 相容，請切換到 **arm64** 以使用 Graviton 處理器來改善效能、運算能力和記憶體。相較於在 x86 架構上執行大小相等的執行個體，在 arm64 架構上執行執行個體的成本較低。

## 使用 arm64 架構 (Graviton)
<a name="arm64"></a>

AWS Graviton 處理器是由 AWS 使用 64 位元 ARM Neoverse 核心自訂設計，並利用 arm64 架構 （也稱為 Arch64 或 64 位元 ARM)。EMR Serverless AWS 上可用的 Graviton 處理器系列包括 Graviton3 和 Graviton2 處理器。相較於在 x86\$164 架構上執行的同等工作負載，這些處理器可為 Spark 和 Hive 工作負載提供卓越的價格效能。當可用時，EMR Serverless 會自動使用最新一代的處理器，而無須費力升級到最新一代的處理器。

## 使用 Graviton 支援啟動新應用程式
<a name="arm64-new"></a>

使用下列其中一種方法來啟動使用 **arm64** 架構的應用程式。

------
#### [ AWS CLI ]

若要從 使用 Graviton 處理器啟動應用程式 AWS CLI，請在 `create-application` API 中指定 `ARM64`作為 `architecture` 參數。在其他參數中為您的應用程式提供適當的值。

```
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 Serverless 應用程式設定為搭配 SDK AWS CLI或 EMR Studio 使用 Graviton (arm64) 架構。

**將現有應用程式從 x86 轉換為 arm64**

1. 確認您使用的是支援 `architecture` 參數的 [AWS 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 中`ARM64`為 `architecture` 參數指定 。

   ```
   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 for Graviton 支援啟動 EMR Serverless 應用程式之前，請確認下列事項。

### 程式庫相容性
<a name="arm64-prereqs-library"></a>

當您選取 Graviton (arm64) 做為架構選項時，請確定第三方套件和程式庫與 64 位元 ARM 架構相容。如需有關如何將 Python 程式庫封裝到與您所選架構相容的 Python 虛擬環境中的資訊，請參閱 [搭配 EMR Serverless 使用 Python 程式庫](using-python-libraries.md)。

若要進一步了解，請參閱 GitHub 上的 [AWS Graviton 入門](https://github.com/aws/aws-graviton-getting-started)儲存庫。此儲存庫包含可協助您開始使用 ARM 型 Graviton 的基本資源。