Delen via


Problemen met Apache Hive oplossen met behulp van Azure HDInsight

Meer informatie over de belangrijkste vragen en hun oplossingen bij het werken met Apache Hive-nettoladingen in Apache Ambari.

Hoe kan ik een Hive-metastore exporteren en importeren in een ander cluster?

Stappen voor het oplossen

  1. Maak verbinding met het HDInsight-cluster met behulp van een SSH-client (Secure Shell). Zie Aanvullende leesinformatie voor meer informatie.

  2. Voer de volgende opdracht uit op het HDInsight-cluster waaruit u de metastore wilt exporteren:

    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
    

    Met deze opdracht wordt een bestand met de naam allatables.sql gegenereerd.

  3. Kopieer het bestand alltables.sql naar het nieuwe HDInsight-cluster en voer vervolgens de volgende opdracht uit:

    hive -f alltables.sql
    

Bij de code in de oplossingsstappen wordt ervan uitgegaan dat gegevenspaden in het nieuwe cluster hetzelfde zijn als de gegevenspaden op het oude cluster. Als de gegevenspaden verschillen, kunt u het gegenereerde alltables.sql bestand handmatig bewerken om eventuele wijzigingen weer te geven.

Meer artikelen

Hoe kan ik Hive-logboeken in een cluster zoeken?

Stappen voor het oplossen

  1. Maak verbinding met het HDInsight-cluster met behulp van SSH. Zie Aanvullende leesinformatie voor meer informatie.

  2. Gebruik de volgende opdracht om hive-clientlogboeken weer te geven:

    /tmp/<username>/hive.log
    
  3. Gebruik de volgende opdracht om Hive-metastore-logboeken weer te geven:

    /var/log/hive/hivemetastore.log
    
  4. Gebruik de volgende opdracht om Hive-serverlogboeken weer te geven:

    /var/log/hive/hiveserver2.log
    

Meer artikelen

Hoe kan ik de Hive-shell met specifieke configuraties op een cluster starten?

Stappen voor het oplossen

  1. Geef een configuratiesleutel-waardepaar op wanneer u de Hive-shell start. Zie Aanvullende leesinformatie voor meer informatie.

    hive -hiveconf a=b
    
  2. Als u alle effectieve configuraties in Hive Shell wilt weergeven, gebruikt u de volgende opdracht:

    hive> set;
    

    Gebruik bijvoorbeeld de volgende opdracht om hive-shell te starten met logboekregistratie voor foutopsporing ingeschakeld op de console:

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

Meer artikelen

Hoe kan ik Apache Tez DAG-gegevens analyseren op een clusterkritiek pad?

Stappen voor het oplossen

  1. Als u een Apache Tez gerichte acyclische grafiek (DAG) wilt analyseren in een clusterkritieke grafiek, maakt u verbinding met het HDInsight-cluster met behulp van SSH. Zie Aanvullende leesinformatie voor meer informatie.

  2. Voer de volgende opdracht uit op een opdrachtprompt:

    hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar CriticalPath --saveResults --dagId <DagId> --eventFileName <DagData.zip> 
    
  3. Als u andere analyses wilt weergeven die kunnen worden gebruikt om Tez DAG te analyseren, gebruikt u de volgende opdracht:

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

    U moet een voorbeeldprogramma opgeven als het eerste argument.

    Geldige programmanamen zijn:

    • ContainerReuseAnalyzer: Details van het opnieuw gebruiken van containers afdrukken in een DAG
    • CriticalPath: het kritieke pad van een DAG vinden
    • LocalityAnalyzer: Details van afdruklocatie in een DAG
    • ShuffleTimeAnalyzer: De details van de willekeurige tijd in een DAG analyseren
    • ScheefheidAnalyzer: Analyseer de scheefheidsgegevens in een DAG
    • SlowNodeAnalyzer: Details van knooppunt afdrukken in een DAG
    • SlowTaskIdentifier: trage taakdetails afdrukken in een DAG
    • SlowestVertexAnalyzer: Langzaamste hoekpuntdetails afdrukken in een DAG
    • SpillAnalyzer: Details van overloop afdrukken in een DAG
    • TaskConcurrencyAnalyzer: de details van de gelijktijdigheid van de taak afdrukken in een DAG
    • VertexLevelCriticalPathAnalyzer: Zoek het kritieke pad op hoekpuntniveau in een DAG

Meer artikelen

Hoe kan ik Tez DAG-gegevens downloaden uit een cluster?

Stappen voor het oplossen

Er zijn twee manieren om de Tez DAG-gegevens te verzamelen:

  • Vanaf de opdrachtregel:

    Maak verbinding met het HDInsight-cluster met behulp van SSH. Voer de volgende opdracht uit vanaf de opdrachtregel:

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

    1. Ga naar Ambari.
    2. Ga naar de Tez-weergave (onder het tegelpictogram in de rechterbovenhoek).
    3. Selecteer de DAG die u wilt weergeven.
    4. Selecteer Gegevens downloaden.

Meer artikelen

Verbinding maken met een HDInsight-cluster met behulp van SSH

Volgende stappen

Als u uw probleem niet hebt gezien of uw probleem niet kunt oplossen, gaat u naar een van de volgende kanalen voor meer ondersteuning:

  • Krijg antwoorden van Azure-experts via de ondersteuning van De Azure-community.

  • Maak verbinding met @AzureSupport : het officiĆ«le Microsoft Azure-account voor het verbeteren van de klantervaring. De Azure-community verbinden met de juiste resources: antwoorden, ondersteuning en experts.

  • Als u meer hulp nodig hebt, kunt u een ondersteuningsaanvraag indienen via Azure Portal. Selecteer Ondersteuning in de menubalk of open de Help + ondersteuningshub . Raadpleeg hoe u een ondersteuning voor Azure aanvraag maakt voor meer informatie. Toegang tot abonnementsbeheer en factuurbeheer is in uw Microsoft Azure-abonnement inbegrepen, en technische ondersteuning wordt verstrekt via een van de Azure-ondersteuningsplannen.