Angeben einer Konfiguration für eine Instance-Gruppe in einem aktiven Cluster - 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.

Angeben einer Konfiguration für eine Instance-Gruppe in einem aktiven Cluster

Ab Amazon EMR-Version 5.21.0 können Sie Cluster-Konfigurationen überschreiben und zusätzliche Konfigurationsklassifikationen für jede Instance-Gruppe in einem ausgeführten Cluster angeben. Dies erfolgt über die Amazon EMR-Konsole, die AWS Command Line Interface-(AWS CLI) oder das AWS SDK.

Anmerkung

Sie können die ursprünglich beim Erstellen eines Clusters angegebenen Cluster-Konfigurationen nicht löschen. Sie können diese nur überschreiben. Sie können aber die Konfigurationen löschen, die Sie für die einzelnen Instance-Gruppen angegeben haben. Wenn Sie Konfigurationen für die Instance-Gruppen aktualisieren, werden die neuen Versionen der Konfigurationen mit den übernommenen Cluster-Konfigurationen zusammengeführt und zu den aktiven Konfigurationen der einzelnen Instance-Gruppen.

Angeben einer Konfiguration für eine Instance-Gruppe in der Konsole

  1. Öffnen Sie die Amazon EMR-Konsole unter https://console.aws.amazon.com/elasticmapreduce/.

  2. Wählen Sie in der Cluster-Liste den aktiven Cluster, der umkonfiguriert werden soll, unter Name.

  3. Öffnen Sie die Seite mit den Cluster-Details für den Cluster und wechseln Sie zur Registerkarte Configurations (Konfigurationen).

  4. Wählen Sie in der Dropdown-Liste Filter die Instance-Gruppe aus, die rekonfiguriert werden soll.

  5. Wählen Sie in der Dropdown-Liste Reconfigure (Rekonfigurieren) die Option Edit in table (In Tabelle bearbeiten) oder Edit in JSON file (In JSON-Datei bearbeiten).

    • Edit in table (In Tabelle bearbeiten): Bearbeiten Sie in der Tabelle der Konfigurationsklassifizierungen Eigenschaft und Wert vorhandener Konfigurationen oder wählen Sie Add Configuration (Konfiguration hinzufügen), um Eigenschaft und Wert für weitere Konfigurationsklassifizierungen anzugeben.

    • Edit in JSON file (In JSON-Datei bearbeiten): Sie können die Konfiguration direkt im JSON-Format oder als Syntax-Kurznotation im abgedunkelten Text angeben. Stellen Sie andernfalls eine Amazon S3-URI für eine Datei mit einem Configurations-JSON-Objekt bereit.

    Anmerkung

    Die Spalte Source (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 von hadoop-env bereitzustellen, fügen Sie eine hadoop.export-Konfigurationsklassifizierung in die Tabelle ein. Anschließend stellen Sie eine Eigenschaft samt Wert für diese Klassifizierung bereit.

  6. (Optional) Wählen Sie Apply this configuration to all active instance groups (Diese Konfiguration allen aktiven Instance-Gruppen zuweisen).

  7. Speichern Sie die Änderungen.

Angeben einer Konfiguration für eine Instance-Gruppe mit der CLI

Mit dem Befehl modify-instance-groups können Sie in der AWS-CLI Konfigurationen für jede Instance-Gruppe in einem ausgeführten Cluster angeben.

Anmerkung

Ersetzen Sie in den folgenden Beispielen j-2AL4XXXXXX5T9 mit Ihrer Cluster-ID und ersetzen Sie ig-1xxxxxxx9 mit Ihrer Instance-Gruppen-ID.

Beispiel – Angeben einer Konfiguration für eine Instance-Gruppe

Das folgende Beispiel zeigt, wie Sie die Eigenschaft des Festplattezustandsprüfers YARN NodeManager für eine Instance-Gruppe bearbeiten, indem Sie auf ein Konfigurationsobjekt in einer JSON-Datei verweisen.

  1. Stellen Sie den folgenden Inhalt in instanceGroups.json bereit und speichern Sie ihn in dem Verzeichnis, in dem Sie den Befehl ausführen:

    [ { "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":[] } ] } ]
  2. Führen Sie den folgenden Befehl aus:

    aws emr modify-instance-groups --cluster-id j-2AL4XXXXXX5T9 \ --instance-groups file://instanceGroups.json

Beispiel – Angeben einer zusätzlichen Konfiguration für eine Instance-Gruppe

Wenn Sie zusätzliche Konfigurationen für eine Instance-Gruppe angeben möchten, müssen Sie in der ModifyInstanceGroup-Anforderung auch die zuvor für die Instance-Gruppe angegebenen Konfigurationen aufführen. Andernfalls werden die zuvor für die Instance-Gruppe angegebenen Konfigurationen entfernt.

Das folgende Beispiel zeigt, wie Sie die Eigenschaft für YARN NodeManager zum Prüfen des virtuellen Speichers bearbeiten, ergänzend zu der bereits zuvor angegebenen Konfiguration für den Festplattenzustandsprüfer YARN NodeManager.

  1. Stellen Sie den folgenden Inhalt in instanceGroups.json bereit und speichern Sie ihn in dem Verzeichnis, in dem Sie den Befehl ausführen:

    [ { "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":[] } ] } ]
  2. Führen Sie den folgenden Befehl aus:

    aws emr modify-instance-groups --cluster-id j-2AL4XXXXXX5T9 \ --instance-groups file://instanceGroups.json

Beispiel – Löschen einer Konfiguration für eine Instance-Gruppe

Um eine zuvor angegebene Konfiguration für eine Instance-Gruppe zu löschen, senden Sie eine neue Rekonfigurationsanforderung, die die vorherige Konfiguration ausschließt.

Anmerkung

Sie können die ursprüngliche Cluster-Konfiguration nur überschreiben. Sie kann nicht gelöscht werden.

Sie können beispielsweise eine neue instanceGroups.json-Datei mit folgendem Inhalt senden, um die Konfiguration für den Festplattenzustandsprüfer YARN NodeManager zu löschen, die im vorherigen Beispiel angegeben wurde.

[ { "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. Ein Beispiel:

[ { "InstanceGroupId":"ig-1xxxxxxx9", "Configurations":[] } ]

Beispiel – Rekonfigurieren und Ändern der Größe einer Instance-Gruppe in einer Anforderung

Im folgenden Beispiel wird gezeigt, wie Sie mit JSON eine Instance-Gruppe in einer Anforderung rekonfigurieren 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" } } ] } ]

Angeben einer Konfiguration für eine Instance-Gruppe mit dem Java-SDK

Anmerkung

Ersetzen Sie in den folgenden Beispielen j-2AL4XXXXXX5T9 mit Ihrer Cluster-ID und ersetzen Sie ig-1xxxxxxx9 mit Ihrer Instance-Gruppen-ID.

Der folgende Programmausschnitt zeigt, wie Sie mit AWS SDK for Java eine neue Konfiguration für eine Instance-Gruppe bereitstellen:

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") .withConfigurations(configuration); ModifyInstanceGroupsRequest migRequest = new ModifyInstanceGroupsRequest() .withClusterId("j-2AL4XXXXXX5T9") .withInstanceGroups(igConfig); emr.modifyInstanceGroups(migRequest);

Ein weiterer Programmausschnitt zeigt, wie eine zuvor angegebene Konfiguration für eine Instance-Gruppe durch Übergeben eines leeren Konfigurations-Arrays gelöscht 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);

Wichtige Aspekte beim Bereitstellen von Konfigurationen für eine Instance-Gruppe

Wenn Konfigurationen für Instance-Gruppen in einem aktiven Cluster bereitgestellt werden, müssen die folgenden Aspekte berücksichtigt werden:

  • Das Rekonfigurieren und das Ändern der Größe einer Instance-Gruppe kann nicht gleichzeitig erfolgen. 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).

  • 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.

  • 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.

  • Amazon EMR weist der neuen Konfigurationsspezifikation eine Versionsnummer zu, nachdem Sie eine Rekonfigurationsanforderung für eine Instance-Gruppe gesendet haben. Sie können die Versionsnummer der Konfiguration oder den Status einer Instance-Gruppe anhand der CloudWatch-Ereignisse überwachen. Weitere Informationen finden Sie unter Überwachen der CloudWatch-Ereignisse.

  • 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 Status SUSPENDED senden.

  • Neukonfigurationsanforderungen für Phoenix-Konfigurationsklassifizierungen werden nur in unterstützt. Amazon EMR Version 5.23.0 und höher und werden in nicht unterstützt Amazon EMR Version 5.21.0 oder 5.22.0.

  • Neukonfigurationsanforderungen für HBase-Konfigurationsklassifizierungen werden nur in unterstützt Amazon EMR Version 5.30.0 und höher und werden in nicht unterstützt Amazon EMR -Versionen 5.23.0 bis 5.29.0.

  • Amazon EMR unterstützt Anforderungen zur Neukonfiguration von Anwendungen auf einem EMR-Cluster mit mehreren Masterknoten nur in Amazon EMR-Version 5.27.0 und höher.

  • Die Neukonfiguration der hdfs-encryption-zones-Klassifizierung oder einer der Hadoop KMS-Konfigurationsklassifizierungen wird in EMR-Cluster mit mehreren Masterknoten nicht unterstützt.

  • Amazon EMR unterstützt derzeit verschiedene Rekonfigurationsanforderungen für den Kapazitätsplaner nicht, wenn dies den Neustart des Ressourcenmanagers voraussetzt (beispielsweise zum vollständigen Entfernen einer Warteschlange).