Problembehandlung für Apache Hadoop YARN mit Azure HDInsight
Lernen Sie die wichtigsten Probleme und ihre Lösungen bei der Arbeit mit Apache Hadoop YARN-Nutzlasten in Apache Ambari kennen.
Wie erstelle ich eine neue YARN-Warteschlange in einem Cluster?
Schritte zur Behebung
Erstellen Sie mit den folgenden Schritten in Ambari eine neue YARN-Warteschlange, und teilen Sie die Kapazitätszuordnung dann gleichmäßig auf alle Warteschlangen auf.
In diesem Beispiel wird die Kapazität zweier vorhandener Warteschlangen (default und thriftsvr) von 50% in 25% geändert, sodass die neue Warteschlange (spark) 50% Kapazität bekommt.
Warteschlange | Capacity | Maximale Kapazität |
---|---|---|
default | 25% | 50% |
thrftsvr | 25% | 50% |
spark | 50% | 50% |
Wählen Sie das Ambari-Ansichten-Symbol und dann das Gittermuster. Wählen Sie als Nächstes YARN Queue Manager.
Wählen Sie die Warteschlange default aus.
Ändern Sie für die default-Warteschlange capacity von 50% in 25%. Ändern Sie für die thriftsvr-Warteschlange capacity in 25%.
Wählen Sie zum Erstellen einer neuen Warteschlange Add Queue.
Benennen Sie die neue Warteschlange.
Lassen Sie die capacity-Werte auf 50%, und wählen Sie die Schaltfläche Actions.
Wählen Sie Save and Refresh Queues.
Diese Änderungen werden sofort auf der YARN-Scheduler-Benutzeroberfläche angezeigt.
Weiterführende Themen
- Apache Hadoop YARN CapacityScheduler (Apache Hadoop YARN-Kapazitätsplaner)
Wie lade ich YARN-Protokolle aus einem Cluster herunter?
Schritte zur Behebung
Stellen Sie mit einem Secure Shell-Client (SSH) eine Verbindung mit dem HDInsight-Cluster her. Weitere Informationen finden Sie unter Zusätzliche Lektüre.
Um alle Anwendungs-IDs der aktuell ausgeführten YARN-Anwendungen aufzulisten, verwenden Sie folgenden Befehl:
yarn top
Die IDs werden in der Spalte APPLICATIONID aufgelistet. Sie können Protokolle aus der Spalte APPLICATIONID herunterladen.
YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved Queue(s) Containers: 2 allocated, 0 pending, 0 reserved APPLICATIONID USER TYPE QUEUE #CONT #RCONT VCORES RVCORES MEM RMEM VCORESECS MEMSECS %PROGR TIME NAME application_1490377567345_0007 hive spark thriftsvr 1 0 1 0 1G 0G 1628407 2442611 10.00 18:20:20 Thrift JDBC/ODBC Server application_1490377567345_0006 hive spark thriftsvr 1 0 1 0 1G 0G 1628430 2442645 10.00 18:20:20 Thrift JDBC/ODBC Server
Um YARN-Containerprotokolle für alle Anwendungsmaster herunterzuladen, verwenden Sie folgenden Befehl:
yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
Dieser Befehl erstellt eine Protokolldatei namens „amlogs.txt“.
Um YARN-Containerprotokolle nur für den neuesten Anwendungsmaster herunterzuladen, verwenden Sie folgenden Befehl:
yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
Dieser Befehl erstellt eine Protokolldatei namens „latestamlogs.txt“.
Um YARN-Containerprotokolle für die ersten beiden Anwendungsmaster herunterzuladen, verwenden Sie folgenden Befehl:
yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
Dieser Befehl erstellt eine Protokolldatei namens „first2amlogs.txt“.
Um alle YARN-Containerprotokolle herunterzuladen, verwenden Sie folgenden Befehl:
yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
Dieser Befehl erstellt eine Protokolldatei namens „logs.txt“.
Um das YARN-Containerprotokoll für einen bestimmten Container herunterzuladen, verwenden Sie folgenden Befehl:
yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
Dieser Befehl erstellt eine Protokolldatei namens „containerlogs.txt“.
Zusätzliche Lektüre
- Herstellen einer Verbindung mit HDInsight (Apache Hadoop) per SSH
- Apache Hadoop YARN concepts and applications (Apache Hadoop Yarn – Konzepte und -Anwendungen)
Wie überprüfe ich die Informationen der Yarn-Anwendungsdiagnose?
Die Diagnose in der Yarn-Benutzeroberfläche ist eine Funktion, mit der Sie den Status und die Protokolle Ihrer auf Yarn laufenden Anwendungen anzeigen können. Die Diagnose hilft Ihnen bei der Problembehandlung und Fehlersuche in Ihren Anwendungen sowie bei der Überwachung ihrer Leistung und Ressourcennutzung.
Um die Diagnose einer bestimmten Anwendung anzuzeigen, können Sie auf die Anwendungs-ID in der Anwendungsliste klicken. Auf der Seite mit den Anwendungsdetails sehen Sie auch eine Liste aller Versuche, die Anwendung auszuführen. Sie können auf jeden Versuch klicken, um weitere Details anzuzeigen, z. B. die ID des Versuchs, die Container-ID, die Knoten-ID, die Startzeit, die Endzeit und die Diagnose.
Wie behebe ich allgemeine YARN-Probleme?
Yarn-Benutzeroberfläche wird nicht geladen
Wenn die YARN-Benutzeroberfläche nicht geladen wird oder nicht erreichbar ist und „HTTP-Fehler 502.3 – Fehlerhaftes Gateway“ zurückgegeben wird, ist der Resource Manager-Dienst mit hoher Wahrscheinlichkeit fehlerhaft. Gehen Sie folgendermaßen vor, um das Problem zu entschärfen:
- Wechseln Sie zu Ambari UI>YARN>SUMMARY, und überprüfen Sie, ob sich nur der aktive Resource Manager-Dienst im Zustand Started (Gestartet) befindet. Versuchen Sie andernfalls, den fehlerhaften oder beendeten Resource Manager-Dienst neu zu starten.
- Wenn Schritt 1 das Problem nicht lösen konnte, stellen Sie eine SSH-Verbindung mit dem aktiven Resource Manager-Hauptknoten her, und überprüfen Sie den Garbage Collection-Status mithilfe von
jstat -gcutil <Resource Manager pid> 1000 100
. Wenn Sie eine hohe Zunahme von FGCT innerhalb weniger Sekunden feststellen, deutet dies darauf hin, dass der Resource Manager-Dienst in Full GC ausgelastet ist und die anderen Anforderungen nicht verarbeiten kann. - Navigieren Sie zu Ambari UI>YARN>CONFIGS>Advanced und erhöhen Sie
Resource Manager java heap size
. - Starten Sie die erforderlichen Dienste in Ambari UI neu.
Beide Ressourcenmanager befinden sich im Standbymodus
- Überprüfen Sie das Resource Manager-Protokoll, um zu sehen, ob es einen ähnlichen Fehler gibt.
Service RMActiveServices failed in state STARTED; cause: org.apache.hadoop.service.ServiceStateException: com.google.protobuf.InvalidProtocolBufferException: Could not obtain block: BP-452067264-10.0.0.16-1608006815288:blk_1074235266_494491 file=/yarn/node-labels/nodelabel.mirror
Wenn es den Fehler gibt, überprüfen Sie, ob einige Dateien in der Replikation vorhanden sind oder ob im HDFS Blöcke fehlen. Sie können
hdfs fsck hdfs://mycluster/
ausführen.Führen Sie
hdfs fsck hdfs://mycluster/ -delete
aus, um das HDFS zwangsweise zu bereinigen und das RM-Standby-Problem zu beheben. Führen Sie alternativ PatchYarnNodeLabel auf einem der Hauptknoten aus, um den Cluster zu patchen.
Nächste Schritte
Wenn Ihr Problem nicht aufgeführt ist oder Sie es nicht lösen können, besuchen Sie einen der folgenden Kanäle, um weitere Unterstützung zu erhalten:
Nutzen Sie den Azure-Communitysupport, um Antworten von Azure-Experten zu erhalten.
Setzen Sie sich mit @AzureSupport in Verbindung, dem offiziellen Microsoft Azure-Konto zum Verbessern der Kundenfreundlichkeit. Verbinden der Azure-Community mit den richtigen Ressourcen: Antworten, Support und Experten.
Sollten Sie weitere Unterstützung benötigen, senden Sie eine Supportanfrage über das Azure-Portal. Wählen Sie dazu auf der Menüleiste die Option Support aus, oder öffnen Sie den Hub Hilfe und Support. Ausführlichere Informationen hierzu finden Sie unter Erstellen einer Azure-Supportanfrage. Zugang zu Abonnementverwaltung und Abrechnungssupport ist in Ihrem Microsoft Azure-Abonnement enthalten. Technischer Support wird über einen Azure-Supportplan bereitgestellt.