Condivisione della tecnologia

Introduzione a Hive e alla sua architettura

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Cos'è Hive?

  • Un data warehouse basato su Hadoop, adatto per alcune applicazioni ad alta latenza (sviluppo offline), può mappare file di dati strutturati e semi-strutturati archiviati nei file Hadoop in una tabella di database e fornire dati di tipo SQL basati sulla tabella A query modello, chiamato Hive Query Language (HQL), per l'accesso e l'analisi di grandi set di dati archiviati nei file Hadoop;
  • Il nucleo di Hive è convertire HQL in un programma MapReduce e quindi inviare il programma al cluster Hadoop per l'esecuzione;
  • Hive stesso non memorizza né calcola i dati. Si basa completamente su HDFS e MapReduce. Le tabelle in Hive sono tabelle puramente logiche;

Cos'è un data warehouse?

  • Il data warehouse in sé non "produce" alcun dato e i suoi dati provengono da diversi sistemi esterni;
  • Allo stesso tempo, il data warehouse stesso non ha bisogno di "consumare" alcun dato e i risultati sono aperti a varie applicazioni esterne;
  • Per questo si chiama “magazzino” e non “fabbrica”;

Architettura e componenti Hive

Inserisci qui la descrizione dell'immagine

  • Meta negozio: Solitamente archiviati in database relazionali come Mysql/derby, i metadati in Hive includono il nome della tabella, le colonne e le partizioni della tabella e i relativi attributi, gli attributi della tabella (se si tratta di una tabella esterna, ecc.), la directory in cui si trovano i dati della tabella, ecc.;
  • Autista : driver, incluso parser della sintassi, compilatore del piano, ottimizzatore ed esecutore. Completa le dichiarazioni di query HQL dall'analisi lessicale, analisi della sintassi, compilazione, ottimizzazione e generazione del piano di query. Il piano di query generato viene archiviato in HDFS e successivamente eseguito dalla chiamata del motore di esecuzione;
    • Parser (parser SQL): converte le stringhe SQL in un albero di sintassi astratto AST ed esegue l'analisi della sintassi sull'AST, ad esempio se la semantica SQL è corretta, se la tabella esiste e se esistono i campi;
    • Compilatore (piano fisico): Compila AST per generare un piano di esecuzione logico (DAG);
    • Ottimizzatore (ottimizzatore di query): Ottimizzare il piano logico di esecuzione;
    • Esecuzione: Converte il piano di esecuzione logico in un piano fisico eseguibile, che è un programma MapReduce/Spark;

Processo di esecuzione HQL

Inserisci qui la descrizione dell'immagine

  1. Fare una richiesta: Avviare una richiesta di esecuzione dall'interfaccia utente al driver;
  2. Ottieni il piano di esecuzione: Il driver invia la richiesta dell'utente al compilatore per ottenere il piano di esecuzione;
  3. Ottieni metadati: Il compilatore ottiene i metadati rilevanti dall'archivio Meta in base alle informazioni relative alla tabella e alla partizione nell'istruzione SQL;
  4. Metadati restituiti: Il meta store restituisce i metadati corrispondenti al compilatore;
  5. Piano di esecuzione del reso: Analizza e ottimizza SQL in base ai metadati di tabelle e partizioni per generare piani di esecuzione logici. Il piano è un grafico DAG e ogni fase corrisponde a una mappa MapReduce o a un'operazione di riduzione;
  6. Esegui il piano di esecuzione: Inviare il piano di esecuzione all'Execution Engine, che invierà il piano di esecuzione logica a Hadoop per l'esecuzione sotto forma di MapReduce;
  7. Si ottengono i risultati correnti: Il conducente raccoglie i risultati della corsa e li invia all'interfaccia utente;