Verwendung eines benutzerdefinierten SystemsAMI, um mehr Flexibilität bei der EMR Amazon-Cluster-Konfiguration zu bieten - 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.

Verwendung eines benutzerdefinierten SystemsAMI, um mehr Flexibilität bei der EMR Amazon-Cluster-Konfiguration zu bieten

Wenn Sie Amazon EMR 5.7.0 oder höher verwenden, können Sie AMI anstelle des standardmäßigen Amazon Linux AMI für Amazon ein benutzerdefiniertes Amazon Linux angeben. EMR Ein benutzerdefinierter AMI Code ist nützlich, wenn Sie Folgendes tun 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äte-Volumes (Boot-Volumes) der EC2 Instances in Ihrem Cluster, wenn Sie eine EMR Amazon-Version unter 5.24.0 verwenden. Wie bei der Standardeinstellung AMI beträgt die Mindestgröße des Root-Volumes für ein benutzerdefiniertes AMI Volume 10 GiB für EMR Amazon-Versionen 6.9 und niedriger und 15 GiB für EMR Amazon-Versionen 6.10 und höher. Weitere Informationen finden Sie unter Benutzerdefiniertes Volume AMI mit einem verschlüsselten EBS Amazon-Root-Geräte-Volume erstellen.

    Anmerkung

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

Ein benutzerdefinierter AMI Code muss in derselben AWS Region existieren, in der Sie den Cluster erstellen. Es sollte auch der EC2 Instanzarchitektur entsprechen. Eine m5.xlarge-Instance hat beispielsweise eine x86_64-Architektur. Um eine m5.xlarge mithilfe einer benutzerdefinierten Datei bereitzustellenAMI, AMI sollte Ihre benutzerdefinierte Datei daher auch über eine x86_64-Architektur verfügen. Um eine m6g.xlarge-Instanz bereitzustellen, die über eine arm64-Architektur verfügt, sollte Ihre benutzerdefinierte Instanz ebenfalls über eine arm64-Architektur verfügen. AMI Weitere Informationen zur Identifizierung eines Linux AMI für Ihren Instance-Typ finden Sie unter Find a Linux AMI im EC2Amazon-Benutzerhandbuch.

Wichtig

EMRCluster, auf denen Amazon Linux oder Amazon Linux 2 Amazon Machine Images (AMIs) 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 EC2 Amazon-Instances, auf denen das standardmäßige Amazon Linux ausgeführt wirdAMI. Wenn neue Amazon Linux-Softwareupdates, die einen Neustart erfordern (wie Kernel und CUDA Updates)NVIDIA, verfügbar werden, nachdem eine EMR Amazon-Version verfügbar wird, laden EMR Cluster-Instances, die standardmäßig ausgeführt werden, diese Updates AMI nicht automatisch herunter und installieren sie. Um Kernel-Updates zu erhalten, können Sie Ihr Amazon so anpassen EMR AMI, dass es das neueste Amazon Linux verwendet AMI.

Erstellen eines benutzerdefinierten Amazon Linux AMI aus einer vorkonfigurierten Instance

Die grundlegenden Schritte zur Vorinstallation von Software und zur Durchführung anderer Konfigurationen zur Erstellung eines benutzerdefinierten Amazon Linux AMI für Amazon EMR lauten wie folgt:

  • Starten Sie eine Instance vom Amazon Linux-Basisserver ausAMI.

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

  • Erstellen Sie ein neues Image (AMISnapshot) der von Ihnen konfigurierten Instance.

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 Benutzerdefiniertes Volume AMI mit einem verschlüsselten EBS Amazon-Root-Geräte-Volume erstellen beschrieben.

Tutorial: AMI Aus einer Instanz erstellen, auf der benutzerdefinierte Software installiert ist

Um eine EC2 Instance zu starten, die auf dem neuesten Amazon Linux basiert AMI
  1. Verwenden Sie den AWS CLI , um den folgenden Befehl auszuführen, der eine Instance aus einer vorhandenen erstelltAMI. MyKeyNameErsetzen Sie durch das key pair, das Sie für die Verbindung MyAmiId mit der Instance verwenden, und durch die ID eines entsprechenden Amazon LinuxAMI. Die neuesten AMI IDs Informationen 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 SSH im EC2Amazon-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 Objekt AMI in einem EMR Amazon-Cluster

Sie können einen Custom verwendenAMI, um einen EMR Amazon-Cluster auf zwei Arten bereitzustellen:

  • Verwenden Sie einen einzigen benutzerdefinierten Code AMI für alle EC2 Instances im Cluster.

  • Verwenden Sie unterschiedliche benutzerdefinierte AMIs Einstellungen für die verschiedenen EC2 Instanztypen, 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 von einzelnen oder mehreren benutzerdefinierten Optionen AMIs in einem EMR Amazon-Cluster
Überlegungen Einzeln, benutzerdefiniert AMI Mehrfach benutzerdefiniert AMIs

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

Nicht unterstützt

Wird unterstützt

AMIDie Anpassung variiert je nach Instanztyp

Nicht unterstützt

Wird unterstützt

Ändern Sie die benutzerdefinierte AMIs Version, wenn Sie eine neue Aufgabeninstanz hinzufügengroups/fleets to a running cluster. Note: you cannot change the custom AMI of existing instance groups/fleets.

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

Verwenden Sie einen einzelnen benutzerdefinierten AMI Code in einem EMR Cluster

Verwenden Sie eine der folgenden Methoden, um bei der Erstellung eines Clusters eine benutzerdefinierte AMI ID anzugeben:

Amazon EMR console
Um einen einzelnen benutzerdefinierten Wert AMI von der Konsole aus anzugeben
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die EMR Amazon-Konsole unter https://console.aws.amazon.com/emr.

  2. Wählen Sie EC2 im linken Navigationsbereich unter EMRon die Option Clusters und anschließend Create cluster aus.

  3. Suchen Sie unter Name und Anwendungen nach Betriebssystemoptionen. Wählen Sie Benutzerdefiniert AMI und geben Sie Ihre AMI ID in das AMI Feld Benutzerdefiniert 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 einen einzelnen Benutzerdefiniert anzugeben AMI mit dem AWS CLI
  • Verwenden Sie den --custom-ami-id Parameter, um die AMI ID anzugeben, wenn Sie den aws emr create-cluster Befehl ausführen.

    Das folgende Beispiel spezifiziert einen Cluster, der ein einzelnes benutzerdefiniertes Startvolume AMI mit einem 20-GiB-Startvolume verwendet. Weitere Informationen finden Sie unter Anpassen des EBS Amazon-Root-Geräte-Volumes.

    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

Verwenden Sie mehrere benutzerdefinierte AMIs in einem EMR Amazon-Cluster

Um einen Cluster mit mehreren benutzerdefinierten Clustern zu erstellenAMIs, verwenden Sie eine der folgenden Optionen:

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

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

Mit der AWS CLI Version 1.20.21 oder höher können Sie dem gesamten Cluster einen einzelnen benutzerdefinierten AMI Code zuweisen, oder Sie können jedem Instanzknoten in Ihrem Cluster mehrere benutzerdefinierte AMIs Knoten 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 Knoten. AMIs Das Beispiel veranschaulicht mehrere Funktionen der mehrfachen benutzerdefinierten AMI Konfiguration:

  • Auf Clusterebene wurde kein benutzerdefinierter Wert AMI zugewiesen. Dadurch sollen Konflikte zwischen mehreren benutzerdefinierten AMIs und einzelnen benutzerdefinierten Elementen vermieden werdenAMI, die dazu führen würden, dass der Clusterstart fehlschlägt.

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

  • Der Kernknoten der Instanzgruppe kann nur einen Instance-Typ und einen entsprechenden benutzerdefinierten Instance-Typ haben. AMI Ebenso kann der primäre Knoten nur einen Instanztyp und einen entsprechenden benutzerdefinierten Instanztyp habenAMI.

  • 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 Instanztypen einen Task-Knoten hinzuzufügen AMIs

Mit der AWS CLI Version 1.20.21 oder höher können Sie einer Instanzgruppe, die Sie einem AMIs laufenden Cluster hinzufügen, mehrere benutzerdefinierte Instanzen 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 Instance-Typen, AMIs 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 Taskknoten zu einem laufenden Cluster mit mehreren Instance-Typen und mehreren benutzerdefinierten Instance-Typen hinzuzufügen AMIs
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}']

Verwaltung von AMI Paket-Repository-Updates

Beim ersten Start stellt Amazon Linux standardmäßig eine AMIs Verbindung zu Paket-Repositorys her, um Sicherheitsupdates zu installieren, bevor andere Dienste gestartet werden. Je nach Ihren Anforderungen können Sie diese Updates deaktivieren, wenn Sie ein benutzerdefiniertes Update AMI für Amazon angebenEMR. Die Option zum Deaktivieren dieser Funktion ist nur verfügbar, wenn Sie eine benutzerdefinierte Funktion verwendenAMI. Standardmäßig werden Amazon-Linux-Kernel-Updates und andere Softwarepakete, die einen Neustart erfordern, nicht aktualisiert. Beachten Sie, dass Ihre Netzwerkkonfiguration Amazon Linux-Repositorys in Amazon S3 zulassen HTTP und HTTPS zu diesen gelangen muss, da andernfalls Sicherheitsupdates nicht erfolgreich sein werden.

Warnung

Wir empfehlen dringend, dass Sie sich dafür entscheiden, alle installierten Pakete beim Neustart zu aktualisieren, wenn Sie ein benutzerdefiniertes Paket angeben. AMI 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 Benutzerdefiniert wählenAMI.

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.

Bei Amazon EMR API können Sie NONE den RepoUpgradeOnBootParameter angeben.

Benutzerdefiniertes Volume AMI mit einem verschlüsselten EBS Amazon-Root-Geräte-Volume erstellen

Um das EBS Amazon-Root-Geräte-Volume eines Amazon Linux AMI for Amazon zu verschlüsselnEMR, kopieren Sie ein Snapshot-Image von einem unverschlüsselten AMI auf ein verschlüsseltes Ziel. Informationen zum Erstellen verschlüsselter EBS Volumes finden Sie unter EBSAmazon-Verschlüsselung im EC2Amazon-Benutzerhandbuch. Die Quelle AMI für den Snapshot kann das Amazon Linux-Basissystem seinAMI, oder Sie können einen Snapshot aus einem von der Amazon Linux-Basis AMI abgeleiteten Snapshot kopierenAMI, den Sie angepasst haben.

Anmerkung

Ab EMR Amazon-Version 5.24.0 können Sie eine Sicherheitskonfigurationsoption verwenden, um EBS Root-Geräte und Speichervolumes zu verschlüsseln, wenn Sie dies AWS KMS als Ihren Schlüsselanbieter angeben. 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 Root-Volume zu verschlüsseln. EBS Die von Amazon EMR verwendete Servicerolle (normalerweise die StandardeinstellungEMR_DefaultRole) muss mindestens berechtigt sein, das Volume zu ver- und entschlüsseln, EMR damit Amazon einen Cluster mit dem erstellen kann. AMI 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: Ein benutzerdefiniertes Volume AMI mit einem verschlüsselten Root-Geräte-Volume mithilfe eines KMS Schlüssels erstellen

Der erste Schritt in diesem Beispiel besteht darin, den ARN KMS Schlüssel zu finden oder einen neuen zu erstellen. 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 ARNWert für den Schlüssel, während Sie ihn erstellen oder bearbeiten. Sie verwenden den ARN höheren Wert, wenn Sie den erstellenAMI.

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

  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 KMS Schlüssels, den Sie verwenden möchten.

  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 „Anhängen“ die EMR Amazon-Servicerolle aus. Der Name der Standardrolle lautet EMR_DefaultRole.

  6. Wählen Sie Anfügen aus.

Um ein verschlüsseltes AMI mit dem zu erstellen AWS CLI
  • Verwenden Sie den aws ec2 copy-image Befehl von AWS CLI , um ein Volume AMI mit einem verschlüsselten EBS Root-Gerät und dem von Ihnen geänderten Schlüssel zu erstellen. Ersetzen Sie den angegebenen --kms-key-id Wert durch den vollständigen Wert ARN des Schlüssels, den Sie unten 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 von Ihnen erstellten Clusters, die Sie angeben können, wenn Sie einen Cluster erstellen. Weitere Informationen finden Sie unter Verwenden Sie einen einzelnen benutzerdefinierten AMI Code in einem EMR Cluster. Sie können dies auch anpassen, AMI 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

Beachten Sie FolgendesEMR, wenn Sie ein benutzerdefiniertes Produkt AMI für Amazon erstellen:

  • Die Amazon EMR 7.x-Serie basiert auf Amazon Linux 2023. Für diese EMR Amazon-Versionen müssen Sie benutzerdefinierte Images verwenden, die auf Amazon Linux 2023 basierenAMIs. Informationen zur Suche nach einem benutzerdefinierten AMI Basismodell finden Sie unter Ein Linux findenAMI.

  • Für EMR Amazon-Versionen unter 7.x wird 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 EMR Amazon-Versionen müssen Sie benutzerdefinierte Images verwenden, die auf Amazon Linux 2 basierenAMIs. Informationen zur Suche nach einem benutzerdefinierten AMI Basismodell finden Sie unter Linux findenAMI.

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

  • Sie müssen ein 64-Bit-Amazon-Linux verwendenAMI. Eine 32-Bit-Version AMI wird nicht unterstützt.

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

  • Basieren Sie Ihre Anpassung auf das neueste EBS unterstützte Amazon Linux AMI. Eine Liste von Amazon Linux AMIs und entsprechendem AMI IDs finden Sie unter Amazon Linux AMI.

  • Kopieren Sie keinen Snapshot einer vorhandenen EMR Amazon-Instance, um eine benutzerdefinierte zu erstellenAMI. Das verursacht Fehler.

  • Nur der HVM Virtualisierungstyp und die mit Amazon kompatiblen Instances EMR werden unterstützt. Achten Sie darauf, das HVM Image und einen mit Amazon kompatiblen Instance-Typ auszuwählen, EMR während Sie den AMI Anpassungsprozess durchführen. Kompatible Instances und Virtualisierungstypen finden Sie unter Unterstützte Instance-Typen bei Amazon EMR.

  • Ihre Servicerolle muss über Startberechtigungen für verfügenAMI, also AMI muss sie entweder öffentlich sein, oder Sie müssen der Eigentümer von sein AMI oder sie vom Eigentümer mit Ihnen teilen lassen.

  • Das Erstellen von Benutzern AMI mit demselben Namen wie Anwendungen führt zu Fehlern (z. B. hadoophdfs,yarn, oderspark).

  • Die Inhalte von /tmp/var, und /emr (sofern sie auf der vorhanden sindAMI) werden beim Start nach /mnt/tmp/mnt/var, /mnt/emr bzw. 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 verwenden, das auf einem Amazon Linux AMI mit einem Erstellungsdatum vom 11.08.2018 AMI basiert, kann der Oozie-Server nicht gestartet werden. Wenn Sie Oozie verwenden, erstellen Sie eine benutzerdefinierte Version, die auf einer Amazon AMI Linux-ID mit einem anderen Erstellungsdatum AMI basiert. Sie können den folgenden AWS CLI Befehl verwenden, um eine Liste mit Images IDs für alle HVM Amazon Linux-Versionen 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 einen Domainnamen verwenden, der nicht VPC dem Standard entspricht AmazonProvidedDNS, sollten Sie die rotate Option in der Betriebssystemkonfiguration nicht verwenden. DNS

  • Wenn Sie einen benutzerdefinierten Agenten erstellenAMI, der den Amazon EC2 Systems Manager (SSM) -Agenten enthält, kann der aktivierte SSM Agent einen Bereitstellungsfehler im Cluster verursachen. Um dies zu vermeiden, deaktivieren Sie den SSM Agenten, wenn Sie einen benutzerdefinierten AMI Agenten verwenden. Um dies zu tun, deaktivieren Sie bei der Auswahl und dem Start Ihrer EC2 Amazon-Instance den SSM Agenten, bevor Sie die Instance verwenden, um eine benutzerdefinierte Instance zu erstellen AMI und anschließend Ihren EMR Cluster zu erstellen.

Weitere Informationen finden Sie unter Creating an Amazon EBS Backed Linux AMI im EC2Amazon-Benutzerhandbuch.