Freigeben über


Behandeln von Problemen mit Apache Hive unter Verwendung von Azure HDInsight

Hier werden die Antworten auf die wichtigsten Fragen bei der Arbeit mit Apache Hive-Nutzlasten in Apache Ambari behandelt.

Wie exportiere ich einen Hive-Metastore und importiere ihn in einen anderen Cluster?

Schritte zur Behebung

  1. Stellen Sie mit einem Secure Shell-Client (SSH) eine Verbindung mit dem HDInsight-Cluster her. Weitere Informationen finden Sie unter Zusätzliche Lektüre.

  2. Führen Sie den folgenden Befehl auf dem HDInsight-Cluster aus, aus dem Sie den Metastore exportieren möchten:

    for d in `hive -e "show databases"`; do echo "create database $d; use $d;" >> alltables.sql ; for t in `hive --database $d -e "show tables"` ; do ddl=`hive --database $d -e "show create table $t"`; echo "$ddl ;" >> alltables.sql ; echo "$ddl" | grep -q "PARTITIONED\s*BY" && echo "MSCK REPAIR TABLE $t ;" >> alltables.sql ; done; done
    

    Mit diesem Befehl wird die Datei „allatables.sql“ generiert.

  3. Kopieren Sie die Datei „alltables.sql“ in den neuen HDInsight-Cluster, und führen Sie den folgenden Befehl aus:

    hive -f alltables.sql
    

Für den Code in den Schritten zur Behebung wird davon ausgegangen, dass die Datenpfade im neuen Cluster identisch mit denen im alten Cluster sind. Wenn sich die Datenpfade unterscheiden, können die Sie generierte Datei alltables.sql manuell so ändern, dass etwaige Änderungen widergespiegelt werden.

Zusätzliche Lektüre

Wie finde ich Hive-Protokolle in einem Cluster?

Schritte zur Behebung

  1. Stellen Sie mithilfe von SSH eine Verbindung mit dem HDInsight-Cluster her. Weitere Informationen finden Sie unter Zusätzliche Lektüre.

  2. Führen Sie den folgenden Befehl aus, um Hive-Clientprotokolle anzuzeigen:

    /tmp/<username>/hive.log
    
  3. Führen Sie den folgenden Befehl aus, um Hive-Metastoreprotokolle anzuzeigen:

    /var/log/hive/hivemetastore.log
    
  4. Führen Sie den folgenden Befehl aus, um Hive-Server-Protokolle anzuzeigen:

    /var/log/hive/hiveserver2.log
    

Zusätzliche Lektüre

Wie starte ich die Hive-Shell mit bestimmten Konfigurationen in einem Cluster?

Schritte zur Behebung

  1. Geben Sie beim Starten der Hive-Shell ein Schlüssel-Wert-Paar für die Konfiguration an. Weitere Informationen finden Sie unter Zusätzliche Lektüre.

    hive -hiveconf a=b
    
  2. Führen Sie den folgenden Befehl aus, um alle effektiven Konfigurationen auf Hive-Shell aufzulisten:

    hive> set;
    

    Verwenden Sie beispielsweise den folgenden Befehl, um Hive-Shell mit auf der Konsole aktivierter Debugprotokollierung zu starten:

    hive -hiveconf hive.root.logger=ALL,console
    

Zusätzliche Lektüre

Wie analysiere ich Apache Tez DAG-Daten (Directed Acyclic Graph, gerichteter azyklischer Graph) in einem clusterkritischen Pfad?

Schritte zur Behebung

  1. Stellen Sie zum Analysieren eines Apache Tez DAG (Directed Acyclic Graph, gerichteter azyklischer Graph) in einem clusterkritischen Pfad mithilfe von SSH eine Verbindung mit dem HDInsight-Cluster her. Weitere Informationen finden Sie unter Zusätzliche Lektüre.

  2. Führen Sie an der Eingabeaufforderung folgenden Befehl aus:

    hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar CriticalPath --saveResults --dagId <DagId> --eventFileName <DagData.zip> 
    
  3. Führen Sie zum Auflisten anderer Analyzer für die Analyse von Tez DAG-Daten (Directed Acyclic Graph, gerichteter azyklischer Graph) den folgenden Befehl aus:

    hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar
    

    Ein Beispielprogramm muss als erstes Argument angegeben werden.

    Gültige Programmnamen:

    • ContainerReuseAnalyzer: Ausgeben von Details zum Wiederverwenden von Containern in einem gerichteten azyklischen Graph
    • CriticalPath: Suchen des kritischen Pfads eines gerichteten azyklischen Graphs
    • LocalityAnalyzer: Ausgeben von Ortsdetails in einem gerichteten azyklischen Graph
    • ShuffleTimeAnalyzer: Analysieren von Durchmischungszeitdetails in einem gerichteten azyklischen Graph
    • SkewAnalyzer: Analysieren der Neigungsdetails in einem gerichteten azyklischen Graph
    • SlowNodeAnalyzer: Ausgeben von Knotendetails in einem gerichteten azyklischen Graph
    • SlowTaskIdentifier: Ausgeben von Details zu langsamen Aufgaben in einem gerichteten azyklischen Graph
    • SlowestVertexAnalyzer: Ausgeben von Details zu den langsamsten Scheitelpunkten in einem gerichteten azyklischen Graph
    • SpillAnalyzer: Ausgeben von Details zum Überlauf in einem gerichteten azyklischen Graph
    • TaskConcurrencyAnalyzer: Ausgeben von Details zur Parallelität von Aufgaben in einem gerichteten azyklischen Graph
    • VertexLevelCriticalPathAnalyzer: Suchen des kritischen Pfads auf Scheitelpunktebene in einem gerichteten azyklischen Graph

Zusätzliche Lektüre

Wie lade ich Tez DAG-Daten (Directed Acyclic Graph, gerichteter azyklischer Graph) aus einem Cluster herunter?

Schritte zur Behebung

Es gibt zwei Möglichkeiten zum Erfassen der Tez DAG-Daten:

  • Über die Befehlszeile:

    Stellen Sie mithilfe von SSH eine Verbindung mit dem HDInsight-Cluster her. Führen Sie an der Eingabeaufforderung den folgenden Befehl aus:

    hadoop jar /usr/hdp/current/tez-client/tez-history-parser-*.jar org.apache.tez.history.ATSImportTool -downloadDir . -dagId <DagId>
    
  • Mithilfe der Ambari-Tez-Ansicht:

    1. Navigieren Sie zu Ambari.
    2. Wechseln Sie zur Tez-Ansicht (unter dem Kachelsymbol in der oberen rechten Ecke).
    3. Wählen Sie den gerichteten azyklischen Graph, der angezeigt werden soll.
    4. Wählen Sie Download data (Daten herunterladen) aus.

Zusätzliche Lektüre

Herstellen einer Verbindung mit einem HDInsight-Cluster mit SSH

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.