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
Ab Amazon-EMR-Version 5.21.0 können Sie Cluster-Konfigurationen neu konfigurieren und zusätzliche Konfigurationsklassifikationen für jede Instance-Gruppe in einem ausgeführten Cluster angeben. Dazu können Sie die Amazon EMR-Konsole, das AWS Command Line Interface (AWS CLI) oder das AWS SDK verwenden.
Wenn Sie eine Anwendungskonfiguration für eine Instance-Gruppe in der neuen Amazon-EMR-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 EMR die Konfiguration nicht zusammenführen kann, werden Sie von der Konsole benachrichtigt.
Nachdem Sie eine Neukonfigurationsanforderung für eine Instance-Gruppe übermittelt haben, weist Amazon EMR der neuen Konfigurationsspezifikation eine Versionsnummer zu. Sie können die Versionsnummer einer Konfiguration oder den Status einer Instance-Gruppe 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, setzt Amazon EMR manuell geänderte Konfigurationen, z. B. Konfigurationen, die Sie geändert haben, während Sie über SSH mit Ihrem Cluster verbunden waren, 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 Amazon EMR-Konsole, das AWS Command Line Interface (AWS CLI) oder das AWS SDK einreichen, überprüft Amazon EMR die vorhandene Cluster-Konfigurationsdatei. Wenn es Unterschiede zwischen der vorhandenen Konfiguration und der von Ihnen bereitgestellten Datei gibt, initiiert Amazon EMR Neukonfigurationsaktionen, startet einige Anwendungen neu und setzt alle manuell geänderten Konfigurationen, wie Konfigurationen, die Sie geändert haben, während Sie über SSH mit Ihrem Cluster verbunden waren, auf die Cluster-Standardeinstellungen für die angegebene Instance-Gruppe zurück.
Anmerkung
Amazon EMR führt bei jeder Neukonfiguration der Instance-Gruppe 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 EMR leitet 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 Amazon EMR, die Sie verwenden. Zum Beispiel 6.2.0.-Konfigurationsklassifizierungen.
Anmerkung
Im Amazon-EMR-Versionshandbuch sind nur Neukonfigurationsaktionen aufgeführt, die mit den Amazon-EMR-Versionen 5.32.0 und 6.2.0 beginnen.
- Betriebsunterbrechung
-
Amazon EMR führt die Rekonfiguration der Instances in den Instance-Gruppen Core und Task rollierend durch. 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-Aufträge während eines YARN-Neustarts auszuführen, können Sie entweder einen Amazon-EMR-Cluster mit mehreren Hauptknoten erstellen oder
yarn.resourcemanager.recovery.enabled
in Ihreryarn-site
-Konfigurationsklassifizierungtrue
auf einstellen. Weitere Informationen zur Verwendung mehrerer Master-Knoten finden Sie unter YARN für hohe Verfügbarkeit. ResourceManager - Validierung der Anwendung
-
Amazon EMR überprüft, ob jede Anwendung auf dem Cluster nach dem Neustart der Neukonfiguration ausgeführt wird. Wenn eine Anwendung nicht verfügbar ist, schlägt der gesamte Neukonfigurationsvorgang fehl. Wenn eine Rekonfigurationoperation fehlschlägt, stellt Amazon EMR die Konfigurationsparameter der zuvor funktionierenden Version wieder her.
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 Amazon-EMR-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 Konfigurationsdateien, die außerhalb der Rekonfigurations-API vorgenommen wurden.
-
Mischen. Die Rekonfigurationsmethode wird für die Amazon-EMR-Versionen 5.35.0 und 6.6.0 und höher unterstützt, außer in der Amazon-EMR-Konsole, 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 EMR überschreibt 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:
-
Anwendungen, die nicht von Yarn stammen, können beim Neustart fehlschlagen oder Clusterprobleme verursachen, insbesondere wenn die Anwendungen nicht richtig konfiguriert sind. Bei Clustern, die sich der maximalen Speicher- und 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).
-
Nachdem eine Instance-Gruppe rekonfiguriert wurde, startet Amazon EMR die Anwendungen, um die neuen Konfigurationen zu aktivieren. Auftragsfehler und anderes unerwartetes Anwendungsverhalten kann auftreten, wenn die Anwendungen während der Rekonfiguration genutzt werden.
-
Wenn eine Rekonfiguration für eine Instance-Gruppe fehlschlägt, stellt Amazon EMR die Konfigurationsparameter der zuvor funktionierenden Version wieder her. Schlägt auch diese Wiederherstellung fehl, müssen Sie eine neue
ModifyInstanceGroup
-Anforderung zur Wiederherstellung der Instance-Gruppe aus dem StatusSUSPENDED
senden. -
Rekonfigurationsanforderungen für Phoenix-Konfigurationsklassifizierungen werden nur in Amazon EMR ab Version 5.23.0, nicht jedoch in den Amazon-EMR-Versionen 5.21.0 und 5.22.0 unterstützt.
-
Rekonfigurationsanfragen für HBase Konfigurationsklassifizierungen werden nur in Amazon EMR Version 5.30.0 und höher unterstützt und werden in den Amazon EMR-Versionen 5.23.0 bis 5.29.0 nicht unterstützt.
-
Amazon EMR unterstützt Anfragen zur Neukonfiguration von Anwendungen auf einem Amazon-EMR-Cluster mit mehreren Primärknoten nur in Amazon-EMR-Versionen 5.27.0 und höher.
-
Die Neukonfiguration der
hdfs-encryption-zones
–Klassifizierung oder einer der Hadoop KMS-Konfigurationsklassifizierungen auf einem ausgeführten Cluster wird in Amazon EMR nicht unterstützt. -
Amazon EMR unterstützt derzeit bestimmte Rekonfigurationsanfragen für den Capacity Scheduler nicht, die einen Neustart des YARN erfordern. ResourceManager Beispielsweise können Sie eine Warteschlange nicht vollständig entfernen.
Eine Instance-Gruppe in der Konsole neu konfigurieren
Anmerkung
Die Amazon-EMR-Konsole unterstützt keine Rekonfigurationen vom Typ Merge.
-
Öffnen Sie die Amazon EMR-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 in der Dropdown-Liste Rekonfigurieren die Option In Tabelle bearbeiten oder In JSON-Datei bearbeiten.
-
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 in JSON ein oder verwenden Sie die Kurzschriftsyntax (demonstriert im Schattentext). Stellen Sie andernfalls eine 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.
Eine Instance-Gruppe mithilfe der CLI rekonfigurieren
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 durch Ihre Cluster-ID und <j-2AL4XXXXXX5T9>
<ig-1xxxxxxx9>
ersetzen Sie sie durch Ihre Instance-Gruppen-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 NodeManager YARN-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.
Das folgende Beispiel fügt eine Eigenschaft für den NodeManager virtuellen YARN-Speicherprüfer hinzu. Die Konfiguration enthält auch zuvor angegebene Werte für den NodeManager YARN-Festplattenintegritätsprüfer, 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.
Das folgende Beispiel fügt eine Eigenschaft für den NodeManager virtuellen YARN-Speicherprüfer hinzu. Da es sich um eine Rekonfiguration vom Typ Merge handelt, werden zuvor angegebene Werte für die NodeManager YARN-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 NodeManager YARN-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 JSON-Beispiel zeigt, wie eine Instance-Gruppe in derselben Anfrage neu konfiguriert und in der Größe geändert wird.
[ { "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" } } ] } ]
Eine Instance-Gruppe mithilfe des Java SDK neu konfigurieren
Anmerkung
Ersetzen <j-2AL4XXXXXX5T9>
Sie in den folgenden Beispielen durch Ihre Cluster-ID und <ig-1xxxxxxx9>
ersetzen Sie sie durch Ihre 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 Instance-Gruppe fehlschlägt, macht Amazon EMR die Neukonfiguration 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 Amazon-EMR-Version auf Ihrem Cluster ab.
Das folgende Beispiel zeigt Fehlerinformationen für Amazon-EMR-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 Amazon-EMR-Release-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: