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
Las imágenes personalizadas de Amazon EMR en EKS admiten tanto instancias de EC2 basadas en AWS Graviton como instancias de EC2 no basadas en Graviton. Las imágenes basadas en Graviton se almacenan en los mismos repositorios de imágenes de Amazon ECR que las imágenes no basadas en Graviton.
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:
-
Cree un
Dockerfile
con el siguiente contenido para poder extraer la imagenarm64
.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
-
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
. nota
Debe crear imágenes
arm64
en las instanciasarm64
. Del mismo modo, debe crear imágenesamd64
en las instanciasamd64
.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. -
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 de EC2 basadas en AWS Graviton y no basadas en Graviton, la instancia determina la imagen de arquitectura correcta en función de la arquitectura de la instancia que extrae la imagen.