Troubleshoot Apache Hive by using Azure HDInsight (Rozwiązywanie problemów z technologią Apache Hive za pomocą usługi Azure HDInsight)

Dowiedz się więcej o najważniejszych pytaniach i ich rozwiązaniach podczas pracy z ładunkami apache Hive w systemie Apache Ambari.

Jak mogę wyeksportować magazyn metadanych Hive i zaimportować go w innym klastrze?

Kroki rozwiązania

  1. Nawiąż połączenie z klastrem usługi HDInsight przy użyciu klienta protokołu Secure Shell (SSH). Aby uzyskać więcej informacji, zobacz Dodatkowe informacje.

  2. Uruchom następujące polecenie w klastrze usługi HDInsight, z którego chcesz wyeksportować magazyn metadanych:

    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
    

    To polecenie generuje plik o nazwie allatables.sql.

  3. Skopiuj plik alltables.sql do nowego klastra usługi HDInsight, a następnie uruchom następujące polecenie:

    hive -f alltables.sql
    

Kod w krokach rozwiązywania zakłada, że ścieżki danych w nowym klastrze są takie same jak ścieżki danych w starym klastrze. Jeśli ścieżki danych są inne, możesz ręcznie edytować wygenerowany alltables.sql plik, aby odzwierciedlić wszelkie zmiany.

Materiały uzupełniające

Jak mogę zlokalizować dzienniki programu Hive w klastrze?

Kroki rozwiązania

  1. Nawiąż połączenie z klastrem usługi HDInsight przy użyciu protokołu SSH. Aby uzyskać więcej informacji, zobacz Dodatkowe informacje.

  2. Aby wyświetlić dzienniki klienta programu Hive, użyj następującego polecenia:

    /tmp/<username>/hive.log
    
  3. Aby wyświetlić dzienniki magazynu metadanych Hive, użyj następującego polecenia:

    /var/log/hive/hivemetastore.log
    
  4. Aby wyświetlić dzienniki serwera Hive, użyj następującego polecenia:

    /var/log/hive/hiveserver2.log
    

Materiały uzupełniające

Jak mogę uruchomić powłokę Hive z określonymi konfiguracjami w klastrze?

Kroki rozwiązania

  1. Określ parę klucz-wartość konfiguracji podczas uruchamiania powłoki Programu Hive. Aby uzyskać więcej informacji, zobacz Dodatkowe informacje.

    hive -hiveconf a=b
    
  2. Aby wyświetlić listę wszystkich skutecznych konfiguracji w powłoce Programu Hive, użyj następującego polecenia:

    hive> set;
    

    Na przykład użyj następującego polecenia, aby uruchomić powłokę Programu Hive z włączonym rejestrowaniem debugowania w konsoli programu :

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

Materiały uzupełniające

Jak mogę analizować dane daG platformy Apache Tez na ścieżce krytycznej dla klastra?

Kroki rozwiązania

  1. Aby przeanalizować graf acykliczny (DAG) platformy Apache Tez na grafie krytycznym dla klastra, połącz się z klastrem usługi HDInsight przy użyciu protokołu SSH. Aby uzyskać więcej informacji, zobacz Dodatkowe informacje.

  2. W wierszu polecenia uruchom następujące polecenie:

    hadoop jar /usr/hdp/current/tez-client/tez-job-analyzer-*.jar CriticalPath --saveResults --dagId <DagId> --eventFileName <DagData.zip> 
    
  3. Aby wyświetlić listę innych analizatorów, których można użyć do analizowania grupy dag aplikacji Tez, użyj następującego polecenia:

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

    Jako pierwszy argument należy podać przykładowy program.

    Prawidłowe nazwy programów to:

    • ContainerReuseAnalyzer: drukowanie szczegółów ponownego użycia kontenera w grupie DAG
    • CriticalPath: znajdowanie ścieżki krytycznej grupy DAG
    • LocalityAnalyzer: drukowanie szczegółów dotyczących lokalizacji w grupie DAG
    • ShuffleTimeAnalyzer: analizowanie szczegółów czasu mieszania w grupie DAG
    • SkewAnalyzer: analizowanie szczegółów niesymetryczności w grupie DAG
    • SlowNodeAnalyzer: wyświetlanie szczegółów węzła w grupie DAG
    • SlowTaskIdentifier: drukowanie szczegółów wolnych zadań w grupie DAG
    • SlowestVertexAnalyzer: Drukowanie najwolniejszych szczegółów wierzchołków w daG
    • SpillAnalyzer: Drukowanie szczegółów wycieku w dag
    • TaskConcurrencyAnalyzer: wyświetlanie szczegółów współbieżności zadania w grupie DAG
    • VertexLevelCriticalPathAnalyzer: znajdowanie ścieżki krytycznej na poziomie wierzchołka w grupie DAG

Materiały uzupełniające

Jak mogę pobrać dane tez DAG z klastra?

Kroki rozwiązania

Istnieją dwa sposoby zbierania danych tez DAG:

  • Za pomocą wiersza polecenia:

    Nawiąż połączenie z klastrem usługi HDInsight przy użyciu protokołu SSH. W wierszu polecenia wpisz następujące polecenie:

    hadoop jar /usr/hdp/current/tez-client/tez-history-parser-*.jar org.apache.tez.history.ATSImportTool -downloadDir . -dagId <DagId>
    
  • Użyj widoku Ambari Tez:

    1. Przejdź do narzędzia Ambari.
    2. Przejdź do widoku Tez (pod ikoną kafelków w prawym górnym rogu).
    3. Wybierz grupę DAG, którą chcesz wyświetlić.
    4. Wybierz pozycję Pobierz dane.

Materiały uzupełniające

Nawiązywanie połączenia z klastrem usługi HDInsight przy użyciu protokołu SSH

Następne kroki

Jeśli nie widzisz problemu lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać dodatkową pomoc techniczną: