Verwenden eines benutzerdefinierten AMI - 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.

Verwenden eines benutzerdefinierten AMI

Wenn Sie Amazon EMR 5.7.0 oder höher verwenden, können Sie für Amazon EMR ein benutzerdefiniertes Amazon Linux AMI anstelle des standardmäßigen Amazon Linux AMI angeben. Ein benutzerdefiniertes AMI ist nützlich, wenn Sie Folgendes durchführen möchten:

  • Installieren Sie Anwendungen vorab und führen Sie weitere Anpassungen aus, statt Bootstrap-Aktionen zu verwenden. Dies kann die Cluster-Startzeit verbessern und den Startup-Workflow optimieren. Weitere Informationen sowie ein Beispiel finden Sie unter Erstellen eines benutzerdefinierten Amazon-Linux-AMI aus einer vorkonfigurierten Instance.

  • Implementierung komplexerer Cluster- und Knoten-Konfigurationen als von Bootstrap-Aktionen zugelassen.

  • Verschlüsseln Sie die EBS-Root-Gerät-Datenträger (Start-Volumes) von EC2-Instances in Ihrem Cluster, wenn Sie eine frühere Amazon-EMR-Version als 5.24.0 verwenden. Wie beim Standard-AMI beträgt die Mindestgröße des Root-Volumes für ein benutzerdefiniertes AMI 10 GiB für die Amazon-EMR-Versionen 6.9 und niedriger sowie 15 GiB für die Amazon-EMR-Versionen 6.10 und höher. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Amazon-EBS-Root-Gerät-Datenträger.

    Anmerkung

    Ab Amazon EMR Version 5.24.0 können Sie eine Sicherheitskonfigurationsoption verwenden, um EBS-Root-Geräte und Speichervolumes zu verschlüsseln, wenn Sie dies als Ihren Schlüsselanbieter angeben AWS KMS . Weitere Informationen finden Sie unter Verschlüsselung lokaler Datenträger.

Ein benutzerdefiniertes AMI muss in derselben AWS Region vorhanden sein, in der Sie den Cluster erstellen. Es sollte auch der EC2-Instance-Architektur entsprechen. Eine m5.xlarge-Instance hat beispielsweise eine x86_64-Architektur. Um ein m5.xlarge mithilfe eines benutzerdefinierten AMI bereitzustellen, sollte Ihr benutzerdefiniertes AMI daher auch über eine x86_64-Architektur verfügen. Ebenso sollte Ihr benutzerdefiniertes AMI eine arm64-Architektur haben, um eine m6g.xlarge-Instance bereitzustellen, die über eine arm64-Architektur verfügt. Weitere Informationen zur Identifizierung eines Linux-AMI für Ihren Instance-Typ finden Sie unter Suchen Sie ein Linux-AMI im Amazon EC2 EC2-Benutzerhandbuch.

Wichtig

EMR-Cluster, auf denen Amazon-Linux- oder Amazon-Linux-2-AMIs (Amazon Machine Images) ausgeführt werden, verwenden das Standardverhalten von Amazon Linux und laden wichtige und kritische Kernel-Updates, die einen Neustart erfordern, nicht automatisch herunter und installieren sie. Dies ist dasselbe Verhalten wie bei anderen Amazon-EC2-Instances, die das standardmäßige Amazon-Linux-AMI ausführen. Wenn neue Amazon-Linux-Softwareupdates, die einen Neustart erfordern (wie Kernel-, NVIDIA- und CUDA-Updates), nach der Veröffentlichung einer Amazon-EMR-Version verfügbar werden, laden EMR-Cluster-Instances, die das Standard-AMI ausführen, diese Updates nicht automatisch herunter und installieren sie. Um Kernel-Updates zu erhalten, können Sie Ihr Amazon-EMR-AMI so anpassen, dass es das neueste Amazon-Linux-AMI verwendet.

Erstellen eines benutzerdefinierten Amazon-Linux-AMI aus einer vorkonfigurierten Instance

Die grundlegenden Schritte für das Vorinstallieren von Software und das Ausführen weiterer Konfigurationen zur Erstellung eines benutzerdefinierten Amazon-Linux-AMI für Amazon EMR sind:

  • Starten Sie eine Instance über das Amazon-Linux-Basis-AMI.

  • Stellen Sie eine Verbindung mit der Instance her, um Software zu installieren und andere Anpassungen vorzunehmen.

  • Erstellen Sie ein neues Abbild (AMI-Snapshot) der Instance, die Sie konfiguriert haben.

Nachdem Sie das Abbild auf der Grundlage Ihrer benutzerdefinierten Instance erstellt haben, können Sie es auf ein verschlüsseltes Ziel kopieren, wie im Abschnitt Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Amazon-EBS-Root-Gerät-Datenträger beschrieben.

Tutorial: Erstellen eines AMI aus einer Instance mit installierter eigener Software

So starten Sie eine EC2-Instance auf der Grundlage des neuesten Amazon Linux-AMI
  1. Verwenden Sie den AWS CLI , um den folgenden Befehl auszuführen, der eine Instance aus einem vorhandenen AMI erstellt. MyKeyNameErsetzen Sie durch das key pair, das Sie für die Verbindung MyAmiIdmit der Instance verwenden, und durch die ID eines entsprechenden Amazon Linux AMI. Die neuesten AMI-IDs finden Sie unter Amazon Linux AMI.

    Anmerkung

    Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

    aws ec2 run-instances --image-id MyAmiID \ --count 1 --instance-type m5.xlarge \ --key-name MyKeyName --region us-west-2

    Der Ausgabewert InstanceId wird im nächsten Schritt als MyInstanceId verwendet.

  2. Führen Sie den folgenden Befehl aus:

    aws ec2 describe-instances --instance-ids MyInstanceId

    Der Ausgabewert PublicDnsName wird im nächsten Schritt verwendet, um eine Verbindung mit der Instance herzustellen.

So stellen Sie eine Verbindung mit der Instance her und installieren Software
  1. Verwenden Sie eine SSH-Verbindung, mit der Sie Shell-Befehle auf Ihrer Linux-Instance ausführen können. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer Linux-Instance mithilfe von SSH im Amazon EC2 EC2-Benutzerhandbuch.

  2. Führen Sie alle erforderlichen Anpassungen durch. Beispielsweise:

    sudo yum install MySoftwarePackage sudo pip install MySoftwarePackage
So erstellen Sie einen Snapshot vom benutzerdefinierten Abbild

So verwenden Sie ein benutzerdefiniertes AMI in einem Amazon-EMR-Cluster

Sie können ein benutzerdefiniertes AMI verwenden, um einen Amazon-EMR-Cluster auf zwei Arten bereitzustellen:

  • Verwenden Sie ein einziges benutzerdefiniertes AMI für alle EC2-Instances im Cluster.

  • Verwenden Sie unterschiedliche benutzerdefinierte AMIs für die verschiedenen EC2-Instance-Typen, die im Cluster verwendet werden.

Sie können bei der Bereitstellung eines EMR-Clusters nur eine der beiden Optionen verwenden, und Sie können sie nicht mehr ändern, nachdem der Cluster gestartet wurde.

Überlegungen zur Verwendung einzelner oder mehrerer benutzerdefinierter AMIs in einem Amazon-EMR-Cluster
Überlegungen Einfaches benutzerdefiniertes AMI Mehrere benutzerdefinierte AMIs

Verwenden Sie sowohl x86- als auch Graviton2-Prozessoren mit benutzerdefinierten AMIs im selben Cluster

Nicht unterstützt

Wird unterstützt

Die AMI-Anpassung variiert je nach Instance-Typ

Nicht unterstützt

Wird unterstützt

Ändern Sie benutzerdefinierte AMIs, wenn Sie einem laufenden Cluster neue Aufgaben-Instance-Gruppen/-Flotten hinzufügen. Hinweis: Sie können das benutzerdefinierte AMI vorhandener Instance-Gruppen/Flotten nicht ändern.

Nicht unterstützt

Wird unterstützt

Verwenden Sie die AWS Konsole, um einen Cluster zu starten

Wird unterstützt

Nicht unterstützt

Wird verwendet AWS CloudFormation , um einen Cluster zu starten

Wird unterstützt

Wird unterstützt

Ein einzelnes benutzerdefiniertes AMI in einem EMR-Cluster verwenden

Verwenden Sie eine der folgenden Optionen, um eine benutzerdefinierte AMI-ID anzugeben, wenn Sie einen Cluster erstellen:

Amazon EMR console
So geben Sie ein einzelnes benutzerdefiniertes AMI über die Konsole an
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/emr.

  2. Wählen Sie im linken Navigationsbereich unter EMR in EC2 die Option Cluster und dann Cluster erstellen aus.

  3. Suchen Sie unter Name und Anwendungen nach Betriebssystemoptionen. Wählen Sie Benutzerdefiniertes AMI und geben Sie Ihre AMI-ID in das Feld Benutzerdefiniertes AMI ein.

  4. Wählen Sie alle anderen Optionen aus, die für Ihren Cluster gelten.

  5. Um Ihren Cluster jetzt zu starten, wählen Sie Cluster erstellen aus.

AWS CLI
Um ein einzelnes benutzerdefiniertes AMI anzugeben mit AWS CLI
  • Verwenden Sie den Parameter --custom-ami-id zum Angeben der AMI-ID, wenn Sie den Befehl aws emr create-cluster ausführen.

    Im folgenden Beispiel wird ein Cluster angegeben, der ein einzelnes benutzerdefiniertes AMI mit einem 20 GiB-Boot-Volume verwendet. Weitere Informationen finden Sie unter Anpassen des Root-Geräte-Volumes in Amazon EBS.

    Anmerkung

    Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

    aws emr create-cluster --name "Cluster with My Custom AMI" \ --custom-ami-id MyAmiID --ebs-root-volume-size 20 \ --release-label emr-5.7.0 --use-default-roles \ --instance-count 2 --instance-type m5.xlarge

Mehrere benutzerdefinierte AMIs in einem Amazon-EMR-Cluster verwenden

Verwenden Sie eine der folgenden Optionen, um einen Cluster mit mehreren benutzerdefinierten AMIs zu erstellen:

Die AWS Management Console unterstützt derzeit nicht die Erstellung eines Clusters mit mehreren benutzerdefinierten AMIs.

Beispiel - Verwenden Sie die AWS CLI, um einen Instanzgruppen-Cluster mit mehreren benutzerdefinierten AMIs zu erstellen

Mit der AWS CLI-Version 1.20.21 oder höher können Sie dem gesamten Cluster ein einzelnes benutzerdefiniertes AMI zuweisen, oder Sie können jedem Instanzknoten in Ihrem Cluster mehrere benutzerdefinierte AMIs zuweisen.

Das folgende Beispiel zeigt einen einheitlichen Instance-Gruppen-Cluster, der mit zwei Instance-Typen (m5.xlarge) erstellt wurde, die für alle Knotentypen (Primär, Core, Aufgabe) verwendet werden. Jeder Knoten hat mehrere benutzerdefinierte AMIs. Das Beispiel veranschaulicht mehrere Features der Konfiguration mit mehreren benutzerdefinierten AMIs:

  • Auf Cluster-Ebene ist kein benutzerdefiniertes AMI zugewiesen. Dadurch sollen Konflikte zwischen den mehreren benutzerdefinierten AMIs und einem einzelnen benutzerdefinierten AMI vermieden werden, die dazu führen würden, dass der Clusterstart fehlschlägt.

  • Der Cluster kann über mehrere benutzerdefinierte AMIs für Primär-, Core- und einzelne Aufgabenknoten verfügen. Dies ermöglicht individuelle AMI-Anpassungen, wie z. B. vorinstallierte Anwendungen, ausgefeilte Cluster-Konfigurationen und verschlüsselte Amazon EBS-Root-Geräte-Volumes.

  • Der Core-Knoten der Instance-Gruppe kann nur einen Instance-Typ und ein entsprechendes benutzerdefiniertes AMI haben. Ebenso kann der Primärknoten nur einen Instance-Typ und ein entsprechendes benutzerdefiniertes AMI haben.

  • Der Cluster kann mehrere Aufgabenknoten haben.

aws emr create-cluster --instance-groups InstanceGroupType=PRIMARY,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-234567 InstanceGroupType=TASK,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-345678 InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-456789
Beispiel - Verwenden Sie die AWS CLI-Version 1.20.21 oder höher, um einem laufenden Instanzgruppen-Cluster mit mehreren Instanztypen und mehreren benutzerdefinierten AMIs einen Task-Knoten hinzuzufügen

Mit der AWS CLI-Version 1.20.21 oder höher können Sie einer Instanzgruppe, die Sie einem laufenden Cluster hinzufügen, mehrere benutzerdefinierte AMIs hinzufügen. Das CustomAmiId-Argument kann zusammen mit dem add-instance-groups-Befehl verwendet werden, wie im folgenden Beispiel gezeigt. Beachten Sie, dass dieselbe mehrfache benutzerdefinierte AMI-ID (ami-123456) in mehr als einem Knoten verwendet wird.

aws emr create-cluster --instance-groups InstanceGroupType=PRIMARY,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 InstanceGroupType=CORE,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-123456 InstanceGroupType=TASK,InstanceType=m5.xlarge,InstanceCount=1,CustomAmiId=ami-234567 { "ClusterId": "j-123456", ... } aws emr add-instance-groups --cluster-id j-123456 --instance-groups InstanceGroupType=Task,InstanceType=m6g.xlarge,InstanceCount=1,CustomAmiId=ami-345678
Beispiel - Verwenden Sie die AWS CLI-Version 1.20.21 oder höher, um einen Instance-Flottencluster, mehrere benutzerdefinierte AMIs, mehrere Instance-Typen, On-Demand-Primärinstanzen, On-Demand-Core, mehrere Core- und Task-Knoten zu erstellen
aws emr create-cluster --instance-fleets InstanceFleetType=PRIMARY,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456}'] InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}'] InstanceFleetType=TASK,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-456789},{InstanceType=m6g.xlarge, CustomAmiId=ami-567890}']
Beispiel - Verwenden Sie die AWS CLI-Version 1.20.21 oder höher, um Task-Knoten zu einem laufenden Cluster mit mehreren Instance-Typen und mehreren benutzerdefinierten AMIs hinzuzufügen
aws emr create-cluster --instance-fleets InstanceFleetType=PRIMARY,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge, CustomAmiId=ami-123456}'] InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}'] { "ClusterId": "j-123456", ... } aws emr add-instance-fleet --cluster-id j-123456 --instance-fleet InstanceFleetType=TASK,TargetSpotCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-234567},{InstanceType=m6g.xlarge, CustomAmiId=ami-345678}']

Verwalten von Updates für AMI-Paket-Repositorys

Standardmäßig stellen Amazon-Linux-AMIs beim Erststart eine Verbindung mit Paket-Repositorys her, um Sicherheitsupdates zu installieren, bevor die anderen Dienste starten. Je nach Ihren Anforderungen können Sie diese Aktualisierungen deaktivieren, wenn Sie ein benutzerdefiniertes AMI für Amazon EMR angeben. Die Option zum Deaktivieren dieser Funktion steht ist nur verfügbar, wenn Sie ein benutzerdefiniertes AMI verwenden. Standardmäßig werden Amazon-Linux-Kernel-Updates und andere Softwarepakete, die einen Neustart erfordern, nicht aktualisiert. Beachten Sie, dass Ihre Netzwerkkonfiguration den HTTP- und HTTPS-Ausgang zu Amazon-Linux-Repositorys in Amazon S3 zulassen muss, da andernfalls Sicherheitsupdates nicht erfolgreich sein werden.

Warnung

Wir empfehlen dringend, dass Sie beim Neustart alle installierten Pakete aktualisieren, wenn Sie ein benutzerdefiniertes AMI angeben. Wenn Sie keine Pakete aktualisieren, entstehen zusätzliche Sicherheitsrisiken.

Mit dem AWS Management Console können Sie die Option zum Deaktivieren von Updates auswählen, wenn Sie Benutzerdefiniertes AMI wählen.

Mit dem können Sie angeben AWS CLI--repo-upgrade-on-boot NONE, --custom-ami-id wann Sie den create-cluster Befehl verwenden möchten.

Mit der Amazon EMR-API können Sie NONE den RepoUpgradeOnBootParameter angeben.

Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Amazon-EBS-Root-Gerät-Datenträger

Um den Amazon-EBS-Root-Gerät-Datenträger eines Amazon-Linux-AMI für Amazon EMR zu verschlüsseln, kopieren Sie ein Snapshot-Abbild von einem unverschlüsselten AMI zu einem verschlüsselten Ziel. Informationen zum Erstellen verschlüsselter EBS-Volumes finden Sie unter Amazon EBS-Verschlüsselung im Amazon EC2 EC2-Benutzerhandbuch. Als Quell-AMI für den Snapshot können Sie das Amazon-Linux-Basis-AMI verwenden. Sie können auch einen Snapshot von einem AMI kopieren, das vom angepassten Amazon-Linux-AMI abgeleitet wurde.

Anmerkung

Ab Amazon EMR Version 5.24.0 können Sie eine Sicherheitskonfigurationsoption verwenden, um EBS-Root-Geräte und Speichervolumes zu verschlüsseln, wenn Sie dies als Ihren Schlüsselanbieter angeben AWS KMS . Weitere Informationen finden Sie unter Verschlüsselung lokaler Datenträger.

Sie können einen externen Schlüsselanbieter oder einen AWS KMS-Schlüssel verwenden, um das EBS-Root-Volume zu verschlüsseln. Die von Amazon EMR verwendete Servicerolle (normalerweise die Standard-EMR_DefaultRole) muss mindestens zum Verschlüsseln und Entschlüsseln des Volumes berechtigt sein, damit Amazon EMR einen Cluster mit dem AMI erstellen kann. Bei der Verwendung AWS KMS als Schlüsselanbieter bedeutet dies, dass die folgenden Aktionen zulässig sein müssen:

  • kms:encrypt

  • kms:decrypt

  • kms:ReEncrypt*

  • kms:CreateGrant

  • kms:GenerateDataKeyWithoutPlaintext"

  • kms:DescribeKey"

Hierfür fügen Sie am einfachsten die Rolle als Schlüsselbenutzer wie im folgenden Tutorial beschrieben hinzu. Die folgende Richtlinienanweisung dient als Beispiel für den Fall, dass Sie Rollenrichtlinien anpassen müssen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EmrDiskEncryptionPolicy", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "*" ] } ] }

Tutorial: Erstellen eines benutzerdefinierten AMI mit einem verschlüsselten Root-Gerät-Datenträger mithilfe eines KMS-Schlüssels

Im ersten Schritt dieses Beispiels muss der ARN eines KMS-Schlüssels ermittelt oder neu erstellt werden. Weitere Informationen zum Erstellen von -Schlüsseln finden Sie unter Erstellen von Schlüsseln im AWS Key Management Service -Entwicklerhandbuch. Im folgenden Verfahren wird gezeigt, wie Sie als Schlüsselbenutzer die Standard-Servicerolle EMR_DefaultRole zur Schlüsselrichtlinie hinzufügen. Notieren Sie sich den ARN-Wert für den Schlüssel, wenn Sie ihn erstellen oder bearbeiten. Sie verwenden den ARN später, wenn Sie das AMI erstellen.

So fügen Sie die Servicerolle für Amazon EC2 zur Liste der Benutzer von Verschlüsselungsschlüsseln mithilfe der Konsole hinzu
  1. Melden Sie sich bei der Konsole AWS Key Management Service (AWS KMS) unter https://console.aws.amazon.com/kms an AWS Management Console und öffnen Sie sie.

  2. Um das zu ändern AWS-Region, verwenden Sie die Regionsauswahl in der oberen rechten Ecke der Seite.

  3. Wählen Sie den Alias des zu verwendenden KMS-Schlüssel aus.

  4. Wählen Sie auf der Seite mit den Schlüsseldetails unter Key Users (Schlüsselbenutzer( die Option Add (Hinzufügen) aus.

  5. Wählen Sie im Dialogfeld Anfügen die Amazon-EMR-Servicerolle aus. Der Name der Standardrolle lautet EMR_DefaultRole.

  6. Wählen Sie Anfügen aus.

Um ein verschlüsseltes AMI zu erstellen mit dem AWS CLI
  • Verwenden Sie den aws ec2 copy-image Befehl von AWS CLI , um ein AMI mit einem verschlüsselten EBS-Root-Geräte-Volume und dem Schlüssel, den Sie geändert haben, zu erstellen. Ersetzen Sie den angegebenen Wert --kms-key-id durch den vollständigen ARN des Schlüssels, den Sie zuvor erstellt oder geändert haben.

    Anmerkung

    Linux-Zeilenfortsetzungszeichen (\) sind aus Gründen der Lesbarkeit enthalten. Sie können entfernt oder in Linux-Befehlen verwendet werden. Entfernen Sie sie unter Windows oder ersetzen Sie sie durch ein Caret-Zeichen (^).

    aws ec2 copy-image --source-image-id MyAmiId \ --source-region us-west-2 --name MyEncryptedEMRAmi \ --encrypted --kms-key-id arn:aws:kms:us-west-2:12345678910:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Die Ausgabe des Befehls enthält die ID des AMI, das Sie erstellt haben, welches Sie angeben können, wenn Sie einen Cluster erstellen. Weitere Informationen finden Sie unter Ein einzelnes benutzerdefiniertes AMI in einem EMR-Cluster verwenden. Sie können dieses AMI auch anpassen, indem Sie Software installieren und andere Konfigurationen durchführen. Weitere Informationen finden Sie unter Erstellen eines benutzerdefinierten Amazon-Linux-AMI aus einer vorkonfigurierten Instance.

Bewährte Methoden und Überlegungen

Wenn Sie ein benutzerdefiniertes AMI für Amazon EMR erstellen, sollten Sie Folgendes bedenken:

  • Die Amazon EMR 7.x-Serie basiert auf Amazon Linux 2023. Für diese Amazon EMR-Versionen müssen Sie Images verwenden, die auf Amazon Linux 2023 für benutzerdefinierte AMIs basieren. Informationen zum Suchen eines benutzerdefinierten Basis-AMI finden Sie unter Suchen eines Linux-AMI.

  • Für Amazon EMR-Versionen unter 7.x werden Amazon Linux 2023-AMIs nicht unterstützt.

  • Amazon EMR 5.30.0 und höher sowie die Amazon-EMR-6.x-Serie basieren auf Amazon Linux 2. Für diese Amazon-EMR-Versionen müssen Sie Images auf Basis von Amazon Linux 2 für benutzerdefinierte AMIs verwenden. Informationen zum Suchen eines benutzerdefinierten Basis-AMI finden Sie unter Suchen eines Linux-AMI.

  • Für Amazon-EMR-Versionen vor 5.30.0 und 6.x werden Amazon Linux 2 AMIs nicht unterstützt.

  • Sie müssen ein 64-Bit-Amazon-Linux-AMI verwenden. Ein 32-Bit-AMI wird nicht unterstützt.

  • Amazon-Linux-AMIs mit mehreren Amazon-EBS-Volumes werden nicht unterstützt.

  • Legen Sie Ihrer Anpassung das neueste von EBS gestützte Amazon Linux AMI zugrunde. Die Liste der Amazon Linux AMIs und der zugehörigen AMI-IDs finden Sie unter Amazon Linux AMI.

  • Kopieren Sie keinen Snapshot einer vorhandenen Amazon-EMR-Instance, um ein benutzerdefiniertes AMI zu erstellen. Das verursacht Fehler.

  • Es werden nur die mit Amazon EMR kompatiblen HVM-Virtualisierungstypen und Instances unterstützt. Stellen Sie sicher, dass Sie während der AMI-Anpassung ein HVM-Abbild und einen Instance-Typ auswählen, das bzw. der mit Amazon EMR kompatibel ist. Kompatible Instances und Virtualisierungstypen finden Sie unter Unterstützte Instance-Typen.

  • Die Servicerolle muss über Startberechtigungen für das AMI verfügen. Das AMI muss also entweder öffentlich sein, oder Sie müssen der Eigentümer des AMI sein, oder das AMI wurde vom Eigentümer für Sie freigegeben.

  • Wenn Sie Benutzer im AMI erstellen, deren Namen mit Anwendungsnamen übereinstimmen (z. B. hadoop, hdfs, yarn oder spark), führt das zu Fehlern.

  • Der Inhalt von /tmp, /var und /emr – sofern im AMI vorhanden – wird während des Startup entsprechend nach /mnt/tmp, /mnt/var und /mnt/emr verschoben. Dateien werden beibehalten; bei großen Mengen an Daten kann jedoch der Startup länger als erwartet dauern.

  • Wenn Sie ein benutzerdefiniertes Amazon-Linux-AMI verwenden, das auf einem Amazon-Linux-AMI mit einem Erstellungsdatum vom 8.11.2018 basiert, kann der Oozie-Server nicht gestartet werden. Wenn Sie Oozie verwenden, erstellen Sie ein benutzerdefiniertes AMI, das auf einer Amazon-Linux-AMI-ID mit einem anderen Erstellungsdatum basiert. Sie können den folgenden AWS CLI Befehl verwenden, um eine Liste der Image-IDs für alle HVM-Amazon-Linux-AMIs mit einer Version 2018.03 zusammen mit dem Veröffentlichungsdatum zurückzugeben, sodass Sie ein geeignetes Amazon Linux-AMI als Basis auswählen können. MyRegion Ersetzen Sie es durch Ihre Regionskennung, z. B. us-west-2.

    aws ec2 --region MyRegion describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `amzn-ami-hvm-2018.03`) == `true`].[CreationDate,ImageId,Name]' --output text | sort -rk1
  • In Fällen, in denen Sie eine VPC mit einem nicht standardmäßigen Domainnamen und AmazonProvided DNS verwenden, sollten Sie die rotate Option in der DNS-Konfiguration des Betriebssystems nicht verwenden.

Weitere Informationen finden Sie unter Erstellen eines Amazon EBS-gestützten Linux-AMI im Amazon EC2 EC2-Benutzerhandbuch.