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.
Eine Instance-Gruppe in einem laufenden Cluster neu konfigurieren
Mit EMR Amazon-Version 5.21.0 und höher können Sie Cluster-Anwendungen neu konfigurieren und zusätzliche Konfigurationsklassifizierungen für jede Instance-Gruppe in einem laufenden Cluster angeben. Dazu können Sie die EMR Amazon-Konsole, die AWS Command Line Interface (AWS CLI) oder die verwenden AWS SDK.
Wenn Sie eine Anwendungskonfiguration für eine Instance-Gruppe in der neuen EMR Amazon-Konsole aktualisieren, versucht die Konsole, die neue Konfiguration mit der vorhandenen Konfiguration zusammenzuführen, um eine neue, aktive Konfiguration zu erstellen. In dem ungewöhnlichen Fall, dass Amazon die Konfiguration nicht zusammenführen EMR kann, warnt Sie die Konsole.
Nachdem Sie eine Rekonfigurationsanfrage für eine Instance-Gruppe eingereicht haben, EMR weist Amazon der neuen Konfigurationsspezifikation eine Versionsnummer zu. Sie können die Versionsnummer einer Konfiguration oder den Status einer Instanzgruppe verfolgen, indem Sie sich die CloudWatch Ereignisse ansehen. Weitere Informationen finden Sie unter CloudWatch Ereignisse überwachen.
Anmerkung
Sie können Clusterkonfigurationen, die bei der Clustererstellung angegeben wurden, nur überschreiben und nicht löschen. Wenn es Unterschiede zwischen der vorhandenen Konfiguration und der von Ihnen bereitgestellten Datei gibt, EMR setzt Amazon manuell geänderte Konfigurationen, z. B. Konfigurationen, die Sie geändert haben, während Sie mit Ihrem Cluster verbunden warenSSH, auf die Cluster-Standardeinstellungen für die angegebene Instance-Gruppe zurück.
Überlegungen bei der Neukonfiguration einer Instance-Gruppe
- Aktionen zur Neukonfiguration
-
Wenn Sie eine Rekonfigurationsanfrage über die EMR Amazon-Konsole, die AWS Command Line Interface (AWS CLI) oder die einreichen AWS SDK, EMR überprüft Amazon die vorhandene Cluster-Konfigurationsdatei. Wenn es Unterschiede zwischen der vorhandenen Konfiguration und der von Ihnen bereitgestellten Datei gibt, EMR leitet Amazon Rekonfigurationsaktionen ein, startet einige Anwendungen neu und setzt alle manuell geänderten Konfigurationen, wie Konfigurationen, die Sie geändert haben, während Sie mit Ihrem Cluster verbunden warenSSH, auf die Cluster-Standardeinstellungen für die angegebene Instance-Gruppe zurück.
Anmerkung
Amazon EMR führt bei jeder Neukonfiguration der Instanzgruppe einige Standardaktionen durch. Diese Standardaktionen können zu Konflikten mit den von Ihnen vorgenommenen Cluster-Anpassungen führen und zu Fehlern bei der Neukonfiguration führen. Weitere Informationen, wie Sie bei fehlgeschlagener Neukonfiguration beheben können, finden Sie unter Probleme bei der Neukonfiguration von Instance-Gruppen beheben.
Amazon leitet EMR auch Neukonfigurationsaktionen für die Konfigurationsklassifizierungen ein, die Sie in Ihrer Anfrage angeben. Eine vollständige Liste dieser Aktionen finden Sie im Abschnitt Konfigurationsklassifizierungen für die Version von AmazonEMR, die Sie verwenden. Zum Beispiel 6.2.0.-Konfigurationsklassifizierungen.
Anmerkung
Der EMR Amazon-Versionshandbuch listet nur Neukonfigurationsaktionen ab den EMR Amazon-Versionen 5.32.0 und 6.2.0 auf.
- Betriebsunterbrechung
-
Amazon EMR folgt einem fortlaufenden Prozess zur Neukonfiguration von Instances in den Instance-Gruppen Task und Core. Zu einem bestimmten Zeitpunkt werden nur 10 % der Instances in einer Instance-Gruppe geändert und neu gestartet. So benötigt der Prozess mehr Zeit, gleichzeitig ist aber die Wahrscheinlichkeit eines Anwendungsausfalls in einem aktiven Cluster geringer.
Um YARN Jobs während eines YARN Neustarts auszuführen, können Sie entweder einen EMR Amazon-Cluster mit mehreren Master-Knoten erstellen oder
true
in Ihreryarn-site
Konfigurationsklassifizierungyarn.resourcemanager.recovery.enabled
auf einstellen. Weitere Informationen zur Verwendung mehrerer Master-Knoten finden Sie unter Hochverfügbarkeit YARN ResourceManager. - Validierung der Anwendung
-
Amazon EMR überprüft nach dem Neustart der Neukonfiguration, ob jede Anwendung auf dem Cluster ausgeführt wird. Wenn eine Anwendung nicht verfügbar ist, schlägt der gesamte Neukonfigurationsvorgang fehl. Wenn ein Neukonfigurationsvorgang fehlschlägt, EMR macht Amazon die Konfigurationsparameter auf die vorherige funktionierende Version rückgängig.
Anmerkung
Um Fehler bei der Neukonfiguration zu vermeiden, empfehlen wir, nur die Anwendungen auf Ihrem Cluster zu installieren, die Sie verwenden möchten. Wir empfehlen Ihnen außerdem, sicherzustellen, dass alle Clusteranwendungen fehlerfrei sind und ausgeführt werden, bevor Sie eine Rekonfigurationsanfrage einreichen.
- Arten der Neukonfiguration
-
Sie können eine Instance-Gruppe auf zwei Arten neu konfigurieren:
-
Überschreiben. Standardmethode für die Rekonfiguration und die einzige, die in EMR Amazon-Versionen vor 5.35.0 und 6.6.0 verfügbar ist. Diese Rekonfigurationsmethode überschreibt wahllos alle Dateien im Cluster mit dem neu eingereichten Konfigurationssatz. Die Methode löscht alle Änderungen an den Konfigurationsdateien, die außerhalb der Rekonfiguration vorgenommen wurden. API
-
Mischen. Die Rekonfigurationsmethode wird für die EMR Amazon-Versionen 5.35.0 und 6.6.0 und höher unterstützt, außer von der EMR Amazon-Konsole aus, wo sie von keiner Version unterstützt wird. Diese Rekonfigurationsmethode führt die neu eingereichten Konfigurationen mit Konfigurationen zusammen, die bereits auf dem Cluster vorhanden sind. Diese Option fügt nur die neuen Konfigurationen hinzu oder ändert sie, die Sie einreichen. Sie behält bestehende Konfigurationen bei.
Anmerkung
Amazon überschreibt EMR weiterhin einige wichtige Hadoop-Konfigurationen, die es benötigt, um sicherzustellen, dass der Service ordnungsgemäß ausgeführt wird.
-
Einschränkungen
Beachten Sie bei der Neukonfiguration einer Instance-Gruppe in einem laufenden Cluster die folgenden Einschränkungen:
-
YARNNichtanwendungen können beim Neustart fehlschlagen oder Clusterprobleme verursachen, insbesondere wenn die Anwendungen nicht richtig konfiguriert sind. Bei Clustern, die sich dem maximalen Arbeitsspeicher und der maximalen CPU Auslastung nähern, können nach dem Neustart Probleme auftreten. Dies gilt insbesondere für die Master-Instance-Gruppe.
-
Sie können keine Rekonfigurationsanfrage stellen, wenn die Größe einer Instance-Gruppe geändert wird. Wenn eine Rekonfiguration initiiert wird, während die Größe einer Instance-Gruppe geändert wird, kann die Rekonfiguration erst durchgeführt werden, nachdem die Größenänderung abgeschlossen wurde (und umgekehrt).
-
Nach der Neukonfiguration einer Instanzgruppe EMR startet Amazon die Anwendungen neu, damit die neuen Konfigurationen wirksam werden können. Auftragsfehler und anderes unerwartetes Anwendungsverhalten kann auftreten, wenn die Anwendungen während der Rekonfiguration genutzt werden.
-
Wenn eine Neukonfiguration für eine Instanzgruppe fehlschlägt, EMR macht Amazon die Konfigurationsparameter auf die vorherige funktionierende Version rückgängig. Schlägt auch diese Wiederherstellung fehl, müssen Sie eine neue
ModifyInstanceGroup
-Anforderung zur Wiederherstellung der Instance-Gruppe aus dem StatusSUSPENDED
senden. -
Rekonfigurationsanfragen für Phoenix-Konfigurationsklassifizierungen werden nur in EMR Amazon-Version 5.23.0 und höher unterstützt und werden in EMR Amazon-Version 5.21.0 oder 5.22.0 nicht unterstützt.
-
Rekonfigurationsanfragen für HBase Konfigurationsklassifizierungen werden nur in EMR Amazon-Version 5.30.0 und höher unterstützt und werden in den EMR Amazon-Versionen 5.23.0 bis 5.29.0 nicht unterstützt.
-
Amazon EMR unterstützt Anfragen zur Neukonfiguration von Anwendungen auf einem EMR Amazon-Cluster mit mehreren Primärknoten nur in EMR Amazon-Versionen 5.27.0 und höher.
-
Die Neukonfiguration der
hdfs-encryption-zones
Klassifizierung oder einer der KMS Hadoop-Konfigurationsklassifizierungen wird auf einem EMR Amazon-Cluster mit mehreren Primärknoten nicht unterstützt. -
Amazon unterstützt EMR derzeit bestimmte Rekonfigurationsanfragen für den Capacity Scheduler nicht, die einen Neustart des erfordern. YARN ResourceManager Beispielsweise können Sie eine Warteschlange nicht vollständig entfernen.
Eine Instance-Gruppe in der Konsole neu konfigurieren
Anmerkung
Die EMR Amazon-Konsole unterstützt keine Rekonfigurationen vom Typ Merge.
-
Öffnen Sie die EMR Amazon-Konsole unter https://console.aws.amazon.com/emr
-
Wählen Sie in der Cluster-Liste den aktiven Cluster, der umkonfiguriert werden soll, unter Name.
-
Öffnen Sie die Seite mit den Cluster-Details für den Cluster und wechseln Sie zur Registerkarte Konfigurationen.
-
Wählen Sie in der Dropdown-Liste Filter die Instance-Gruppe aus, die rekonfiguriert werden soll.
-
Wählen Sie im Drop-down-Menü „Neu konfigurieren“ entweder „In Tabelle bearbeiten“ oder „In Datei bearbeiten“. JSON
-
In Tabelle bearbeiten: Bearbeiten Sie in der Tabelle der Konfigurationsklassifizierungen Eigenschaft und Wert vorhandener Konfigurationen oder wählen Sie Konfiguration hinzufügen, um für weitere Konfigurationsklassifizierungen anzugeben.
-
In JSON Datei bearbeiten — Geben Sie die Konfiguration direkt einJSON, oder verwenden Sie eine Kurzsyntax (demonstriert im Schattentext). Andernfalls stellen Sie Amazon S3 URI für eine Datei mit einem JSON
Configurations
Objekt bereit.
Anmerkung
Die Spalte Quelle in der Tabelle der Konfigurationsklassifizierungen zeigt, ob die Konfiguration beim Erstellen eines Clusters oder beim Angeben zusätzlicher Konfigurationen für diese Instance-Gruppe bereitgestellt wird. Sie können Konfigurationen für eine Instance-Gruppe aus beiden Quellen bearbeiten. Sie können die ursprünglichen Cluster-Konfigurationen nicht löschen, aber sie für eine Instance-Gruppe überschreiben.
Sie können außerdem verschachtelte Konfigurationsklassifizierungen direkt in der Tabelle hinzufügen oder bearbeiten. Um beispielsweise eine zusätzliche
export
-Unterklassifizierung vonhadoop-env
bereitzustellen, fügen Sie einehadoop.export
-Konfigurationsklassifizierung in die Tabelle ein. Anschließend stellen Sie eine Eigenschaft samt Wert für diese Klassifizierung bereit. -
-
(Optional) Wählen Sie Apply this configuration to all active instance groups (Diese Konfiguration allen aktiven Instance-Gruppen zuweisen).
-
Speichern Sie die Änderungen.
Rekonfigurieren Sie eine Instanzgruppe mit dem CLI
Verwenden Sie den Befehl modify-instance-groups, um eine neue Konfiguration für eine Instance-Gruppe in einem laufenden Cluster anzugeben.
Anmerkung
Ersetzen Sie in den folgenden Beispielen <j-2AL4XXXXXX5T9>
durch Ihre Cluster-ID und ersetzen <ig-1xxxxxxx9>
mit Ihrer Instanzgruppen-ID.
Beispiel – Eine Konfiguration für eine Instance-Gruppe ersetzen
Das folgende Beispiel verweist auf eine JSON Konfigurationsdatei, die aufgerufen wirdinstanceGroups.json
, um die Eigenschaft der YARN NodeManager Festplattenintegritätsprüfung für eine Instanzgruppe zu bearbeiten.
-
Bereiten Sie Ihre Konfigurationsklassifizierung vor und speichern Sie sie als
instanceGroups.json
in demselben Verzeichnis, in dem Sie den Befehl ausführen werden.[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0" }, "Configurations":[] } ] } ] -
Führen Sie den folgenden Befehl aus.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
Beispiel – Einer Instance-Gruppe eine Konfiguration hinzufügen
Wenn Sie einer Instance-Gruppe eine Konfiguration hinzufügen möchten, müssen Sie alle zuvor angegebenen Konfigurationen für diese Instance-Gruppe in Ihre neue ModifyInstanceGroup
-Anforderung aufnehmen. Andernfalls werden die zuvor für die angegebenen Konfigurationen entfernt.
Im folgenden Beispiel wird eine Eigenschaft für den YARN NodeManager Virtual Memory Checker hinzugefügt. Die Konfiguration enthält auch zuvor angegebene Werte für die YARN NodeManager Festplattenintegritätsprüfung, sodass die Werte nicht überschrieben werden.
-
Bereiten Sie den folgenden Inhalt in
instanceGroups.json
vor und speichern Sie ihn im selben Verzeichnis, in dem Sie den Befehl ausführen werden.[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0", "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ] -
Führen Sie den folgenden Befehl aus.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
Beispiel – Einer Instance-Gruppe mit Rekonfiguration vom Typ Zusammenführen eine Konfiguration hinzufügen
Wenn Sie die Standardmethode Rekonfiguration Überschreiben verwenden möchten, um eine Konfiguration hinzuzufügen, müssen Sie alle zuvor angegebenen Konfigurationen für diese Instance-Gruppe in Ihre neue ModifyInstanceGroup
-Anfrage aufnehmen. Andernfalls entfernt Überschreiben die Konfigurationen, die Sie zuvor angegeben haben. Bei der Neukonfiguration mit Zusammenführen müssen Sie dies nicht tun. Stattdessen müssen Sie sicherstellen, dass Ihre Anfrage nur die neuen Konfigurationen enthält.
Im folgenden Beispiel wird eine Eigenschaft für den YARN NodeManager Virtual Memory Checker hinzugefügt. Da es sich um eine Rekonfiguration vom Typ Merge handelt, werden zuvor angegebene Werte für die YARN NodeManager Festplattenintegritätsprüfung nicht überschrieben.
-
Bereiten Sie den folgenden Inhalt in
instanceGroups.json
vor und speichern Sie ihn im selben Verzeichnis, in dem Sie den Befehl ausführen werden.[ {"InstanceGroupId":"
<ig-1xxxxxxx9>
", "ReconfigurationType" :"MERGE", "Configurations":[ {"Classification":"yarn-site", "Properties":{ "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ] -
Führen Sie den folgenden Befehl aus.
aws emr modify-instance-groups --cluster-id
<j-2AL4XXXXXX5T9>
\ --instance-groups file://instanceGroups.json
Beispiel – Eine Konfiguration für eine Instance-Gruppe löschen
Um eine Konfiguration für eine Instance-Gruppe zu löschen, senden Sie eine neue Neukonfigurationsanforderung, die die vorherige Konfiguration ausschließt.
Anmerkung
Sie können die ursprüngliche Cluster-Konfiguration nur überschreiben. Sie kann nicht gelöscht werden.
Um beispielsweise die Konfiguration für die YARN NodeManager Festplattenintegritätsprüfung aus dem vorherigen Beispiel zu löschen, reichen Sie eine neue instanceGroups.json
mit dem folgenden Inhalt ein.
[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[ { "Classification":"yarn-site", "Properties":{ "yarn.nodemanager.vmem-check-enabled":"true", "yarn.nodemanager.vmem-pmem-ratio":"3.0" }, "Configurations":[] } ] } ]
Anmerkung
Um alle Konfigurationen der letzten Rekonfigurationsanforderung zu löschen, senden Sie eine Rekonfigurationsanforderung mit einem leeren Konfigurations-Array. Zum Beispiel
[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "Configurations":[] } ]
Beispiel – Eine Instance-Gruppe in einer Anfrage neu konfigurieren oder die Größe ändern
Das folgende Beispiel JSON zeigt, wie Sie eine Instanzgruppe in derselben Anfrage neu konfigurieren und ihre Größe ändern können.
[ { "InstanceGroupId":"
<ig-1xxxxxxx9>
", "InstanceCount":5, "EC2InstanceIdsToTerminate":["i-123"], "ForceShutdown":true, "ShrinkPolicy":{ "DecommissionTimeout":10, "InstanceResizePolicy":{ "InstancesToTerminate":["i-123"], "InstancesToProtect":["i-345"], "InstanceTerminationTimeout":20 } }, "Configurations":[ { "Classification":"yarn-site", "Configurations":[], "Properties":{ "yarn.nodemanager.disk-health-checker.enable":"true", "yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage":"100.0" } } ] } ]
Rekonfigurieren Sie eine Instanzgruppe mithilfe von Java SDK
Anmerkung
Ersetzen Sie in den folgenden Beispielen <j-2AL4XXXXXX5T9>
durch Ihre Cluster-ID und ersetzen <ig-1xxxxxxx9>
mit Ihrer Instanzgruppen-ID.
Der folgende Codeausschnitt bietet eine neue Konfiguration für eine Instance-Gruppe unter Verwendung von AWS SDK for Java.
AWSCredentials credentials = new BasicAWSCredentials("access-key", "secret-key"); AmazonElasticMapReduce emr = new AmazonElasticMapReduceClient(credentials); Map<String,String> hiveProperties = new HashMap<String,String>(); hiveProperties.put("hive.join.emit.interval","1000"); hiveProperties.put("hive.merge.mapfiles","true"); Configuration configuration = new Configuration() .withClassification("hive-site") .withProperties(hiveProperties); InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig() .withInstanceGroupId("
<ig-1xxxxxxx9>
") .withReconfigurationType("MERGE"); .withConfigurations(configuration); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("<j-2AL4XXXXXX5T9>") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);
Der folgende Codeausschnitt löscht eine zuvor angegebene Konfiguration für eine Instance-Gruppe, indem ein leeres Array von Konfigurationen bereitgestellt wird.
List<Configuration> configurations = new ArrayList<Configuration>(); InstanceGroupModifyConfig igConfig = new InstanceGroupModifyConfig() .withInstanceGroupId("
<ig-1xxxxxxx9>
") .withConfigurations(configurations); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("<j-2AL4XXXXXX5T9>
") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);
Probleme bei der Neukonfiguration von Instance-Gruppen beheben
Wenn der Neukonfigurationsprozess für eine Instanzgruppe fehlschlägt, macht Amazon die Neukonfiguration EMR rückgängig und protokolliert eine Fehlermeldung mithilfe eines Amazon-Ereignisses. CloudWatch Das Ereignis bietet eine kurze Zusammenfassung des Neukonfigurationsfehlers. Es listet die Instances auf, bei denen die Rekonfiguration fehlgeschlagen ist, sowie die entsprechenden Fehlermeldungen. Das Folgende ist ein Beispiel für eine Fehlermeldung.
The reconfiguration operation for instance group
ig-1xxxxxxx9
in Amazon EMR clusterj-2AL4XXXXXX5T9
(ExampleClusterName) failed at 2021-01-01 00:00 UTC and took 2 minutes to fail. Failed configuration version isexample12345
. Failure message: Instancei-xxxxxxx1
,i-xxxxxxx2
,i-xxxxxxx3
failed with message "This is an example failure message".
Weitere Daten zu einem Fehler bei der Rekonfiguration können Sie in den Protokollen zur Knotenbereitstellung nachlesen. Dies ist besonders nützlich, wenn Sie eine Nachricht wie die folgende erhalten.
i-xxxxxxx1
failed with message “Unable to complete transaction and some changes were applied.”
Jede Protokolldatei enthält einen detaillierten Bereitstellungsbericht für die zugehörige Rekonfiguration. Um Informationen zu Fehlermeldungen zu finden, können Sie nach der err
-Protokollebene eines Berichts suchen. Das Berichtsformat hängt von der Version von Amazon in EMR Ihrem Cluster ab.
Das folgende Beispiel zeigt Fehlerinformationen für EMR Amazon-Release-Versionen vor 5.32.0 und 6.2.0.
- !ruby/object:Puppet::Util::Log
level: !ruby/sym err
tags:
- err
message: "Example detailed error message."
source: Puppet
time: 2021-01-01 00:00:00.000000 +00:00
Die EMR Amazon-Versionen 5.32.0 und 6.2.0 und höher verwenden stattdessen das folgende Format.
- level: err
message: 'Example detailed error message.'
source: Puppet
tags:
- err
time: '2021-01-01 00:00:00.000000 +00:00'
file:
line: