

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Trabalho com imagens de múltiplas arquiteturas
<a name="docker-custom-images-multi-architecture"></a>

O Amazon EMR no EKS oferece suporte a imagens de contêiner de múltiplas arquiteturas para o Amazon Elastic Container Registry (Amazon ECR). Para obter mais informações, consulte [Introducing multi-architecture container images for Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/).

As imagens personalizadas do Amazon EMR no EKS oferecem suporte tanto para instâncias EC2 AWS baseadas em Graviton quanto para instâncias EC2. non-Graviton-based As imagens baseadas em Graviton são armazenadas nos mesmos repositórios de imagens no Amazon ECR que as imagens. non-Graviton-based 

Por exemplo, para inspecionar a lista de manifestos do Docker para imagens 6.6.0, execute o comando a seguir.

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

Confira a saída a seguir. A arquitetura `arm64` é para instâncias baseadas no Graviton. A arquitetura `amd64` é para instâncias não baseadas no 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"
         }
      }
   ]
}
```

Execute as seguintes etapas para criar imagens de múltiplas arquiteturas:

1. Crie um `Dockerfile` com o conteúdo apresentado a seguir para que você possa extrair a imagem `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. Siga as instruções em [Introducing multi-architecture container images for Amazon ECR](https://aws.amazon.com/blogs/containers/introducing-multi-architecture-container-images-for-amazon-ecr/) para desenvolver uma imagem com múltiplas arquiteturas. 
**nota**  
Você deve criar imagens `arm64` em instâncias `arm64`. De forma semelhante, você deve criar imagens `amd64` em instâncias `amd64`.

   Também é possível desenvolver imagens com múltiplas arquiteturas sem a necessidade de criar cada tipo de instância específico com o comando `buildx` do Docker. Para obter mais informações, consulte [Leverage multi-CPU architecture support](https://docs.docker.com/desktop/multi-arch/). 

1. Após criar uma imagem com múltiplas arquiteturas, você poderá enviar um trabalho com o mesmo parâmetro `spark.kubernetes.container.image` e direcioná-lo para a imagem. Em um cluster heterogêneo com instâncias AWS baseadas em Graviton e non-Graviton-based EC2, a instância determina a imagem correta da arquitetura com base na arquitetura da instância que extrai a imagem.