Wie kann ich die Knotenbeschriftung mit der Amazon-EMR-YARN-Scheduler-Warteschlange konfigurieren oder ändern?

Lesedauer: 4 Minute
0

Ich möchte die Knotenbeschriftung mithilfe der Amazon-EMR-Apache-YARN-Scheduler-Warteschlange konfigurieren oder ändern.

Kurzbeschreibung

Die Standardeinstellungen für das YARN-Knotenlabel für EMR-Cluster lauten wie folgt:

Amazon-EMR-Version 5.19.x und höher in der Amazon-EMR-5.x.x-Serie:

Die Funktion für YARN-Knotenbeschriftungen ist standardmäßig aktiviert. Dies bedeutet, dass das CORE-Knotenlabel für Core-Knoten mit den folgenden Eigenschaften erstellt wird. YARN-Application-Master-Container werden nur Core-Knoten zugewiesen. Für alle anderen Container gibt es keine Partitionsbeschränkung. Sie können die Container entweder Core- oder Aufgabenknoten zuweisen.

yarn.node-labels.enabled: true
yarn.node-labels.am.default-node-label-expression: 'CORE'

Amazon-EMR-Version 6.X und höher:

Die Funktion für YARN-Knotenbeschriftungen ist standardmäßig deaktiviert. Die Anwendungsmasterprozesse können sowohl auf Core- als auch auf Aufgabenknoten ausgeführt werden.

Lösung

Hinweis: Es hat sich bewährt, Änderungen in einer Testumgebung vorzunehmen, bevor Sie in Ihrer Produktionsumgebung fortfahren. Wenn Sie die YARN-Knotenbeschriftungsfunktion deaktivieren, wird der Application-Master-Container außerdem in einem beliebigen Knotentyp gestartet, z. B. Core oder Aufgabe. Für Aufgabenknoten gibt es keine Einschränkung. Wenn Sie die Aufgabenknoten mit Spot Instances konfigurieren, schlägt das Ausführen von Aufträgen möglicherweise fehl, wenn der Aufgabenknoten aufgrund einer Spot-Kapazitätsbeschränkung ausfällt.

Schalten Sie die YARN-Beschriftungsfunktion in Amazon-EMR-Version 5.19.x und höher in der Amazon-EMR-5.x.x-Serie aus

Schalten Sie die standardmäßige YARN-Beschriftungsfunktion aus, wenn Sie einen neuen EMR-Cluster erstellen:

1.    Fügen Sie im Abschnitt Softwareeinstellungen bearbeiten, Konfiguration eingeben die folgenden Eigenschaften hinzu:

[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "false",
      "yarn.node-labels.am.default-node-label-expression": ""
    }
  }
]

2.    Erstellen Sie ein Skript mit der Erweiterung .sh unter Verwendung des folgenden Inhalts und laden Sie es in einen Amazon-Simple-Storage-Service-Bucket (Amazon S3) hoch.

3.    Fügen Sie im Abschnitt Bootstrap-Aktionen das neu erstellte Skript als benutzerdefinierte Aktion hinzu und fahren Sie mit der Clustererstellung fort.

#!/bin/bash
sudo sed -i 's/yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"/echo "NO LABELS"/g' /var/aws/emr/bigtop-deploy/puppet/modules/hadoop/manifests/init.pp

4.    Bestätigen Sie nach Abschluss der Clustererstellung, dass die Änderung übernommen wurde, indem Sie den folgenden Befehl im Master-Knoten ausführen:

yarn cluster --list-node-labels

Das Folgende ist die erwartete Ausgabe des vorherigen Befehls mit einem leeren Wert für Knotenbeschriftungen:

<<<<< Node Labels: >>>>>>

Schalten Sie die standardmäßige YARN-Beschriftungsfunktion in einem vorhandenen EMR-Cluster aus:

1.    Stellen Sie mithilfe von SSH eine Verbindung zum Amazon-EMR-Primärknoten her.

2.    Erstellen Sie eine Sicherungskopie der vorhandenen Datei yarn-site.xml. Der Pfad lautet :/etc/hadoop/conf/yarn-site.xml.

3.    Öffnen Sie die Datei yarn-site.xml****im Dateieditormodus mit dem folgenden Befehl:

sudo su vi yarn-site.xml

4.    Ändern Sie den Eigenschaftswert yarn.node-labels.enabled auf falsch.

<property>
<name>yarn.node-labels.enabled</name>
<value>false</value>
</property>

5.    Entfernen Sie den Wert CORE in der Eigenschaft yarn.node-labels.am.default-node-label-expression, wie im folgenden Beispiel gezeigt:

<property>
    <name>yarn.node-labels.am.default-node-label-expression</name>
    <value></value>
  </property>

6.    Starten Sie den YARN-ResourceManger-Service neu:

sudo systemctl restart hadoop-yarn-resourcemanager.service

sudo systemctl status hadoop-yarn-resourcemanager.service

7.    Vergewissern Sie sich, dass die Änderung erfolgreich angewendet wurde, indem Sie den folgenden Befehl verwenden:

yarn cluster --list-node-labels

Das Folgende ist die erwartete Ausgabe des vorherigen Befehls mit einem leeren Wert für Knotenbeschriftungen:

<<<<< Node Labels: >>>>>>

Aktivieren Sie die Funktion YARN-Beschriftungen in Amazon-EMR-Version 6.x und höher

Schalten Sie die Funktion YARN-Beschriftungen ein, wenn Sie einen neuen EMR-Cluster erstellen:

1.    Fügen Sie dem Abschnitt Softwareeinstellungen bearbeiten, Konfiguration eingeben die folgenden Eigenschaften hinzu, und fahren Sie dann mit der Clustererstellung fort:

[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "true",
      "yarn.node-labels.am.default-node-label-expression": "CORE"
    }
  }
]

2.    Bestätigen Sie nach Abschluss der Clustererstellung, dass die Änderung erfolgreich angewendet wurde, indem Sie den folgenden Befehl im Master-Knoten ausführen:

yarn cluster --list-node-labels

Das Folgende ist die erwartete Ausgabe des vorherigen Befehls:

<<<<< Node Labels: <CORE:exclusivity=false>  >>>>>

Aktivieren Sie die Funktion YARN-Beschriftung in einem vorhandenen EMR-Cluster:

1.    Wählen Sie in der Amazon-EMR-Konsole Cluster und dann den Cluster aus, den Sie bearbeiten möchten.

2.    Wählen Sie die Registerkarte Konfigurationen.

3.    Wählen Sie auf der Registerkarte Neukonfiguration die Option in JSON bearbeiten und fügen Sie die folgenden Eigenschaften hinzu.

[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "true",
      "yarn.node-labels.am.default-node-label-expression": "CORE"
    }
  }
]

4.    Wählen Sie die Option diese Konfiguration auf alle aktiven Instancegruppen anwenden, und speichern Sie dann die Änderungen.

5.    Bestätigen Sie, dass die Änderung übernommen wurde, indem Sie den folgenden Befehl im Hauptknoten ausführen:

yarn cluster --list-node-labels

Das Folgende ist die erwartete Ausgabe des vorherigen Befehls:

<<<<< Node Labels: <CORE:exclusivity=false>  >>>>>>

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr