

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Lavorare con immagini multi-architettura
<a name="docker-custom-images-multi-architecture"></a>

Amazon EMR su EKS supporta le immagini di container multi-architettura per Amazon Elastic Container Registry (Amazon ECR). Per ulteriori informazioni, consulta [Presentazione delle immagini di container multi-architettura per Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/).

Le immagini personalizzate di Amazon EMR su EKS supportano sia le istanze EC2 AWS basate su Graviton che le istanze EC2. non-Graviton-based Le immagini basate su Graviton sono archiviate negli stessi archivi di immagini in Amazon ECR delle immagini. non-Graviton-based 

Ad esempio, per ispezionare l'elenco manifest Docker per le immagini 6.6.0, esegui il comando seguente.

```
docker manifest inspect 895885662937.dkr.ecr.us-west-2.amazonaws.com/spark/emr-6.6.0:latest 
```

Ecco l'output. L'architettura `arm64` è per un'istanza Graviton. Quella `amd64` è per un'istanza non Graviton. 

```
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
   "manifests": [
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1805,
         "digest": "xxx123:6b971cb47d11011ab3d45fff925e9442914b4977ae0f9fbcdcf5cfa99a7593f0",
         "platform": {
            "architecture": "arm64",
            "os": "linux"
         }
      },
      {
         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
         "size": 1805,
         "digest": "xxx123:6f2375582c9c57fa9838c1d3a626f1b4fc281e287d2963a72dfe0bd81117e52f",
         "platform": {
            "architecture": "amd64",
            "os": "linux"
         }
      }
   ]
}
```

Completa la procedura seguente per creare immagini multi-architettura:

1. Crea un `Dockerfile` con i seguenti contenuti in modo da poter estrarre l'immagine `arm64`.

   ```
   FROM --platform=arm64 895885662937.dkr.ecr.us-west-2.amazonaws.com/spark/emr-6.6.0:latest
   USER root
    
   RUN pip3 install boto3 // install customizations here
   USER hadoop:hadoop
   ```

1. Segui le istruzioni riportate in [Presentazione delle immagini di container multi-architettura per Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/) per creare un'immagine multi-architettura. 
**Nota**  
Devi creare immagini `arm64` su istanze `arm64`. Analogamente, devi creare immagini `amd64` su istanze `amd64`.

   Puoi anche creare immagini multi-architettura senza basarti su ogni tipo di istanza specifico utilizzando il comando Docker `buildx`. Per ulteriori informazioni, consulta [Uso del supporto per l'architettura multi-CPU](https://docs.docker.com/desktop/multi-arch/). 

1. Dopo aver creato l'immagine multi-architettura, puoi inviare un processo con lo stesso parametro `spark.kubernetes.container.image` e indirizzarlo verso l'immagine. In un cluster eterogeneo con istanze sia basate su AWS Graviton che non-Graviton-based EC2, l'istanza determina l'immagine dell'architettura corretta in base all'architettura dell'istanza che estrae l'immagine.