Arbeiten mit Images mit mehreren Architekturen - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit Images mit mehreren Architekturen

Amazon EMR on EKS unterstützt Container-Images mit mehreren Architekturen für Amazon Elastic Container Registry (AmazonECR). Weitere Informationen finden Sie unter Einführung von Container-Images mit mehreren Architekturen für Amazon ECR.

Amazon EMR auf EKS benutzerdefinierten Images unterstützt sowohl AWS Graviton-basierte EC2 Instances als auch Instances. non-Graviton-based EC2 Die Graviton-basierten Bilder werden in denselben Bild-Repositorys in Amazon ECR gespeichert wie Bilder. non-Graviton-based

Um beispielsweise die Docker-Manifestliste für 6.6.0-Images zu überprüfen, führen Sie den folgenden Befehl aus.

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

Hier wird die Ausgabe gezeigt. Die arm64-Architektur ist für die Graviton-Instance vorgesehen. Das amd64 ist für eine Nicht-Graviton-Instance.

{ "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" } } ] }

Führen Sie die folgenden Schritte aus, um Multi-Architektur-Images zu erstellen:

  1. Erstellen Sie ein Dockerfile mit dem folgenden Inhalt, damit Sie das arm64-Image abrufen können.

    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
  2. Folgen Sie den Anweisungen unter Einführung von Container-Images mit mehreren Architekturen für Amazon ECR, um ein Multiarchitektur-Image zu erstellen.

    Anmerkung

    Sie müssen arm64 Images auf arm64 Instances erstellen. In ähnlicher Weise müssen Sie amd64 Images auf amd64 Instances erstellen.

    Mit dem Befehl Docker buildx können Sie auch Images mit mehreren Architekturen erstellen, ohne auf jedem spezifischen Instance-Typ aufbauen zu müssen. Weitere Informationen finden Sie unter Nutzung der Unterstützung mehrerer CPU Architekturen.

  3. Nachdem Sie das Multiarchitektur-Image erstellt haben, können Sie einen Auftrag mit demselben spark.kubernetes.container.image Parameter einreichen und ihn auf das Image verweisen. In einem heterogenen Cluster mit AWS Graviton-basierten und non-Graviton-based EC2 Instances bestimmt die Instance das richtige Architektur-Image auf der Grundlage der Instance-Architektur, die das Image abruft.