Risolvere i problemi di Hive tramite Azure HDInsight

Informazioni sui problemi principali che possono verificarsi quando si usano i payload di Apache Hive in Apache Ambari unitamente alle risoluzioni.

Come esportare un metastore Hive e importarlo in un altro cluster

Procedura per la risoluzione

  1. Connettersi al cluster HDInsight con un client Secure Shell (SSH). Per altre informazioni, vedere Informazioni aggiuntive.

  2. Eseguire il comando seguente nel cluster HDInsight da cui si vuole esportare il metastore:

    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
    

    Questo comando genera un file denominato alltables.sql.

  3. Copiare il file alltables.sql nel nuovo cluster HDInsight e quindi eseguire il comando seguente:

    hive -f alltables.sql
    

Il codice nella procedura di risoluzione presuppone che i percorsi di dati nel nuovo cluster siano uguali ai percorsi di dati nel cluster precedente. Se i percorsi di dati sono diversi, è possibile modificare manualmente il file alltables.sql generato per rispecchiare eventuali modifiche.

Informazioni aggiuntive

Come individuare i log di Hive in un cluster

Procedura per la risoluzione

  1. Connettersi al cluster HDInsight usando SSH. Per altre informazioni, vedere Informazioni aggiuntive.

  2. Per visualizzare i log del client Hive, usare il comando seguente:

    /tmp/<username>/hive.log 
    
  3. Per visualizzare i log del metastore Hive, usare il comando seguente:

    /var/log/hive/hivemetastore.log 
    
  4. Per visualizzare i log di Hiveserver, usare il comando seguente:

    /var/log/hive/hiveserver2.log 
    

Informazioni aggiuntive

Come avviare la shell di Hive con configurazioni specifiche in un cluster

Procedura per la risoluzione

  1. Specificare una coppia chiave-valore di configurazione all'avvio della shell di Hive. Per altre informazioni, vedere Informazioni aggiuntive.

    hive -hiveconf a=b 
    
  2. Per elencare tutte le configurazioni valide nella shell di Hive, usare il comando seguente:

    hive> set;
    

    Ad esempio, usare il comando seguente per avviare la shell di Hive con la registrazione debug abilitata nella console:

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

Informazioni aggiuntive

Come analizzare i dati di un grafo aciclico diretto di Tez in un percorso critico del cluster

Procedura per la risoluzione

  1. Per analizzare i dati di un grafo aciclico diretto di Apache Tez in un grafo critico del cluster, connettersi al cluster HDInsight usando SSH. Per altre informazioni, vedere Informazioni aggiuntive.

  2. Al prompt dei comandi, eseguire il seguente comando:

    hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar CriticalPath --saveResults --dagId <DagId> --eventFileName <DagData.zip> 
    
  3. Per elencare altri analizzatori che possono essere usati per analizzare i dati DAG di Tez, usare il comando seguente:

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

    È necessario fornire un programma di esempio come primo argomento.

    I nomi di programma validi includono:

    • ContainerReuseAnalyzer: stampare i dettagli di riutilizzo dei contenitori in un grafo aciclico diretto
    • CriticalPath: trovare il percorso critico di un grafo aciclico diretto
    • LocalityAnalyzer: stampare i dettagli della località in un grafo aciclico diretto
    • ShuffleTimeAnalyzer: analizzare i dettagli degli orari di riproduzione casuale in un grafo aciclico diretto
    • SkewAnalyzer: analizzare i dettagli dell'asimmetria in un grafo aciclico diretto
    • SlowNodeAnalyzer: stampare i dettagli del nodo in un grafo aciclico diretto
    • SlowTaskIdentifier: stampare i dettagli sulle attività lente in un grafo aciclico diretto
    • SlowestVertexAnalyzer: stampare i dettagli relativi ai vertici più lenti in un grafo aciclico diretto
    • SpillAnalyzer: stampare i dettagli relativi all'espansione in un grafo aciclico diretto
    • TaskConcurrencyAnalyzer: stampare i dettagli relativi alla concorrenza delle attività in un grafo aciclico diretto
    • VertexLevelCriticalPathAnalyzer: trovare il percorso critico a livello di vertice in un grafo aciclico diretto

Informazioni aggiuntive

Come scaricare i dati DAG di Tez da un cluster

Procedura per la risoluzione

Esistono due modi per raccogliere i dati di un grafo aciclico diretto di Tez:

  • Dalla riga di comando:

    Connettersi al cluster HDInsight usando SSH. Nel prompt dei comandi eseguire il comando seguente:

    hadoop jar /usr/hdp/current/tez-client/tez-history-parser-*.jar org.apache.tez.history.ATSImportTool -downloadDir . -dagId <DagId> 
    
  • Usare la visualizzazione Tez di Ambari:

    1. Passare ad Ambari.
    2. Passare alla visualizzazione Tez, disponibile sotto l'icona dei riquadri, nell'angolo superiore destro.
    3. Selezionare il grafo aciclico diretto da visualizzare.
    4. Selezionare Download data (Scarica dati).

Informazioni aggiuntive

Connettersi a un cluster HDInsight usando SSH