Wie konfiguriere oder ändere ich die YARN-Knotenbeschriftung in Amazon EMR?

Lesedauer: 4 Minute
0

Ich möchte die Apache Hadoop YARN-Knotenbeschriftung in Amazon EMR konfigurieren oder ändern.

Kurzbeschreibung

Die standardmäßigen Einstellungen für die YARN-Knotenbeschriftung hängen von deiner Version von Amazon EMR ab.

Amazon EMR-Versionen 5.19.x und höher in den Amazon EMR-5.x-Release-Versionen

Die Funktion der YARN-Knotenbeschriftungen ist standardmäßig aktiviert. Wenn du diese Funktion aktivierst, wird die CORE-Knotenbeschriftung für Core-Knoten mit den folgenden Eigenschaften erstellt:

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

YARN ApplicationMaster-Container werden nur Core-Knoten zugewiesen. Für alle anderen Container gibt es keine Partitionsbeschränkung. Du kannst die Container entweder auf Core-Knoten oder auf Aufgabenknoten zuweisen.

Amazon EMR Version 6.x und höher

Die Funktion der YARN-Knotenbeschriftungen ist standardmäßig deaktiviert. Die Primärprozesse der Anwendung können sowohl auf Core- als auch auf Aufgabenknoten ausgeführt werden.

Lösung

Hinweis: Bevor du YARN-Knotenbeschriftungen in der Produktionsumgebung konfigurierst, empfiehlt es sich, sie in einer Testumgebung zu konfigurieren. Wenn du die Funktion der YARN-Knotenbeschriftung deaktivierst, wird der Application-Master-Container in einem beliebigen Knotentyp gestartet. Es gibt keine Einschränkung für Aufgabenknoten. Bei Aufgabenknoten, die mit Spot Instances der Amazon Elastic Compute Cloud (Amazon EC2) konfiguriert sind, schlagen die Aufträge, die ausgeführt werden, möglicherweise fehl, wenn der Aufgabenknoten aufgrund einer Spot-Kapazitätsbeschränkung ausfällt.

Deaktivierung von YARN-Beschriftungen in Amazon EMR-Version 5.19.x und höher in den Amazon EMR-5.x-Release-Versionen

Deaktivierung der YARN-Beschriftungsfunktion, wenn du einen EMR-Cluster erstellst

Führe die folgenden Schritte aus:

  1. Füge im Abschnitt Software-Einstellungen bearbeiten unter Konfiguration eingeben die folgenden Eigenschaften hinzu:

    [  
      {  
        "Classification": "yarn-site",  
        "Properties": {  
          "yarn.node-labels.enabled": "false",  
          "yarn.node-labels.am.default-node-label-expression": ""  
        }  
      }  
    ]
  2. Erstelle das folgende Skript mit der Erweiterung .sh und lade das Skript dann in einen Amazon Simple Storage Service (Amazon S3)-Bucket hoch:

    #!/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
  3. Füge im Abschnitt Bootstrap-Aktionen das Skript als benutzerdefinierte Aktion hinzu und erstelle dann den Cluster.

  4. Führe den folgenden Befehl im Primärknoten aus, um zu bestätigen, dass die Änderung angewendet wird:

    yarn cluster --list-node-labels

    Die Ausgabe zeigt einen leeren Wert für die Knotenbeschriftungen:

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

Deaktivierung der YARN-Beschriftungsfunktion in einem vorhandenen EMR-Cluster

Führe die folgenden Schritte aus:

  1. Verwende SSH, um eine Verbindung zum Amazon EMR-Primärknoten herzustellen.

  2. Erstelle eine Sicherungskopie deiner Datei yarn-site.xml. Der Pfad lautet :/etc/hadoop/conf/yarn-site.xml.

  3. Führe den folgenden Befehl aus, um die Datei yarn-site.xml im Dateieditor-Modus zu öffnen:

    sudo su vi yarn-site.xml
  4. Ändere den Eigenschaftswert **yarn.node-labels.**in false:

    <property>  
      <name>yarn.node-labels.enabled</name>  
      <value>false</value>  
    </property>
  5. Entferne den CORE-Wert in der Eigenschaft yarn.node-labels.am.default-node-label-expression:

    <property>  
      <name>yarn.node-labels.am.default-node-label-expression</name>  
      <value></value>  
    </property>
  6. Wenn deine Cluster-Version neuer als 5.29.0 ist, führe die folgenden Befehle aus, um ResourceManager neu zu starten:

    sudo systemctl restart hadoop-yarn-resourcemanager.service
    sudo systemctl status hadoop-yarn-resourcemanager.service

    -oder-
    Wenn deine Cluster-Version 5.29.0 oder älter ist, führe die folgenden Befehle aus, um ResourceManager neu zu starten:

    sudo stop hadoop-yarn-resourcemanager
    sudo start hadoop-yarn-resourcemanager
  7. Führe den folgenden Befehl aus, um dich zu vergewissern, dass die Änderung übernommen wurde:

    yarn cluster --list-node-labels

    Die Ausgabe zeigt einen leeren Wert für die Knotenbeschriftungen:

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

Aktivierung der YARN-Beschriftungsfunktion in Amazon EMR Version 6.x und höher

Aktivierung der YARN-Beschriftungsfunktion, wenn du einen EMR-Cluster erstellst

  1. Füge im Abschnitt Software-Einstellungen bearbeiten unter Konfiguration eingeben die folgenden Eigenschaften hinzu:

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

  3. Führe den folgenden Befehl im Primärknoten aus, um zu bestätigen, dass die Änderung angewendet wird:

    yarn cluster --list-node-labels

    Die Ausgabe zeigt einen leeren Wert für die Knotenbeschriftungen:

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

Aktivierung der YARN-Beschriftungsfunktion in einem vorhandenen EMR-Cluster

Führe die folgenden Schritte aus:

  1. Öffne die Amazon EMR-Konsole.

  2. Wähle im Navigationsbereich Cluster aus, und wähle dann den Cluster aus, den du bearbeiten möchtest.

  3. Wähle die Registerkarte Konfigurationen.

  4. Wähle unter Konfigurationen der Instance-Gruppe eine Instance-Gruppe aus.

  5. Wähle das Symbol Neu konfigurieren, wähle In JSON bearbeiten aus und füge dann die folgenden Eigenschaften hinzu:

    [  
      {  
        "Classification": "yarn-site",  
        "Properties": {  
          "yarn.node-labels.enabled": "true",  
          "yarn.node-labels.am.default-node-label-expression": "CORE"  
        }  
      }  
    ]
  6. Wähle Apply this configuration to all active instance groups (Diese Konfiguration auf alle aktiven Instance-Gruppen anwenden) und speichere dann die Änderungen.

  7. Führe den folgenden Befehl als hadoop-Benutzer im Primärknoten aus:

    yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"
  8. Führe den folgenden Befehl im Primärknoten aus, um zu bestätigen, dass die Änderung angewendet wird:

    yarn cluster --list-node-labels

    Die Ausgabe zeigt einen leeren Wert für die Knotenbeschriftungen:

    <<<<< Node Labels: <CORE:exclusivity=false>  >>>>>>
AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten