

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de imágenes multiarquitectura
<a name="docker-custom-images-multi-architecture"></a>

Amazon EMR en EKS es compatible con imágenes de contenedor multiarquitectura de Amazon Elastic Container Registry (Amazon ECR). Para obtener más información, consulte [Introducción a las imágenes de contenedores de varias arquitecturas de Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/).

Las imágenes personalizadas de Amazon EMR en EKS admiten tanto las instancias EC2 AWS basadas en Graviton como las instancias EC2. non-Graviton-based Las imágenes basadas en Graviton se almacenan en los mismos repositorios de imágenes de Amazon ECR que las imágenes. non-Graviton-based 

Por ejemplo, para inspeccionar la lista de manifiesto de Docker en busca de imágenes de 6.6.0, ejecute el siguiente comando.

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

Esta es la salida. La arquitectura `arm64` es para la instancia de Graviton. `amd64` es para una instancia que no es de 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"
         }
      }
   ]
}
```

Siga estos pasos para crear imágenes multiarquitectura:

1. Cree un `Dockerfile` con el siguiente contenido para poder extraer la imagen `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. Para crear una imagen multiarquitectura en Amazon ECR, siga las instrucciones de [Introducción a las imágenes de contenedores de varias arquitecturas de Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/). 
**nota**  
Debe crear imágenes `arm64` en las instancias `arm64`. Del mismo modo, debe crear imágenes `amd64` en las instancias `amd64`.

   También puede crear imágenes de varias arquitecturas sin tener que basarse en cada tipo de instancia específico con el comando `buildx` de Docker. Para obtener más información, consulte [Aprovechar la compatibilidad con arquitectura de múltiples CPU](https://docs.docker.com/desktop/multi-arch/). 

1. Tras crear la imagen multiarquitectura, puede enviar un trabajo con el mismo parámetro `spark.kubernetes.container.image` y dirigirlo a la imagen. En un clúster heterogéneo con instancias AWS basadas en Graviton y non-Graviton-based EC2, la instancia determina la imagen de arquitectura correcta en función de la arquitectura de la instancia que extrae la imagen.