Hive - Introduzione

Il termine "Big Data" viene utilizzato per raccolte di grandi set di dati che includono un volume enorme, alta velocità e una varietà di dati che aumenta di giorno in giorno. Utilizzando i tradizionali sistemi di gestione dei dati, è difficile elaborare i Big Data. Pertanto, Apache Software Foundation ha introdotto un framework chiamato Hadoop per risolvere le sfide di elaborazione e gestione dei Big Data.

Hadoop

Hadoop è un framework open source per archiviare ed elaborare Big Data in un ambiente distribuito. Contiene due moduli, uno è MapReduce e un altro è Hadoop Distributed File System (HDFS).

  • MapReduce: È un modello di programmazione parallelo per l'elaborazione di grandi quantità di dati strutturati, semi-strutturati e non strutturati su grandi cluster di hardware di base.

  • HDFS:Hadoop Distributed File System è una parte del framework Hadoop, utilizzato per archiviare ed elaborare i set di dati. Fornisce un file system a tolleranza d'errore da eseguire su hardware comune.

L'ecosistema Hadoop contiene diversi sottoprogetti (strumenti) come Sqoop, Pig e Hive che vengono utilizzati per aiutare i moduli Hadoop.

  • Sqoop: Viene utilizzato per importare ed esportare dati da e verso HDFS e RDBMS.

  • Pig: È una piattaforma di linguaggio procedurale utilizzata per sviluppare uno script per le operazioni di MapReduce.

  • Hive: È una piattaforma utilizzata per sviluppare script di tipo SQL per eseguire operazioni MapReduce.

Note: Esistono vari modi per eseguire le operazioni MapReduce:

  • L'approccio tradizionale che utilizza il programma Java MapReduce per dati strutturati, semi-strutturati e non strutturati.
  • L'approccio di scripting per MapReduce per elaborare dati strutturati e semi strutturati utilizzando Pig.
  • Hive Query Language (HiveQL o HQL) per MapReduce per elaborare i dati strutturati utilizzando Hive.

Cos'è Hive

Hive è uno strumento di infrastruttura del data warehouse per elaborare i dati strutturati in Hadoop. Risiede su Hadoop per riepilogare i Big Data e semplifica l'interrogazione e l'analisi.

Inizialmente Hive è stato sviluppato da Facebook, successivamente la Apache Software Foundation lo ha ripreso e lo ha sviluppato ulteriormente come open source con il nome di Apache Hive. È utilizzato da diverse società. Ad esempio, Amazon lo utilizza in Amazon Elastic MapReduce.

Hive non lo è

  • Un database relazionale
  • Un progetto per l'OLTP (OnLine Transaction Processing)
  • Un linguaggio per query in tempo reale e aggiornamenti a livello di riga

Caratteristiche di Hive

  • Memorizza lo schema in un database e i dati elaborati in HDFS.
  • È progettato per OLAP.
  • Fornisce un linguaggio di tipo SQL per le query chiamato HiveQL o HQL.
  • È familiare, veloce, scalabile ed estensibile.

Architettura di Hive

Il seguente diagramma dei componenti illustra l'architettura di Hive:

Questo diagramma dei componenti contiene diverse unità. La tabella seguente descrive ciascuna unità:

Nome unità Operazione
Interfaccia utente Hive è un software per l'infrastruttura del data warehouse che può creare interazione tra l'utente e HDFS. Le interfacce utente supportate da Hive sono Hive Web UI, Hive command line e Hive HD Insight (In Windows server).
Meta Store Hive sceglie i rispettivi server di database per archiviare lo schema oi metadati di tabelle, database, colonne in una tabella, i relativi tipi di dati e il mapping HDFS.
HiveQL Process Engine HiveQL è simile a SQL per eseguire query sulle informazioni dello schema nel Metastore. È uno dei sostituti dell'approccio tradizionale per il programma MapReduce. Invece di scrivere il programma MapReduce in Java, possiamo scrivere una query per il lavoro MapReduce ed elaborarla.
Motore di esecuzione La parte congiunta di HiveQL Process Engine e MapReduce è Hive Execution Engine. Il motore di esecuzione elabora la query e genera i risultati come i risultati di MapReduce. Usa il sapore di MapReduce.
HDFS o HBASE Il file system distribuito Hadoop o HBASE sono le tecniche di archiviazione dei dati per archiviare i dati nel file system.

Lavoro di Hive

Il diagramma seguente illustra il flusso di lavoro tra Hive e Hadoop.

La tabella seguente definisce il modo in cui Hive interagisce con il framework Hadoop:

Passaggio n. Operazione
1 Execute Query

L'interfaccia Hive come la riga di comando o l'interfaccia utente Web invia una query a Driver (qualsiasi driver di database come JDBC, ODBC, ecc.) Per l'esecuzione.

2 Get Plan

Il driver utilizza l'aiuto del compilatore di query che analizza la query per verificare la sintassi e il piano di query o il requisito della query.

3 Get Metadata

Il compilatore invia la richiesta di metadati a Metastore (qualsiasi database).

4 Send Metadata

Metastore invia i metadati come risposta al compilatore.

5 Send Plan

Il compilatore verifica il requisito e invia nuovamente il piano al conducente. Fino a qui, l'analisi e la compilazione di una query è completa.

6 Execute Plan

Il driver invia il piano di esecuzione al motore di esecuzione.

7 Execute Job

Internamente, il processo di esecuzione del lavoro è un lavoro MapReduce. Il motore di esecuzione invia il lavoro a JobTracker, che si trova nel nodo Nome e assegna questo lavoro a TaskTracker, che si trova nel nodo Dati. Qui, la query esegue il lavoro MapReduce.

7.1 Metadata Ops

Durante l'esecuzione, il motore di esecuzione può eseguire operazioni sui metadati con Metastore.

8 Fetch Result

Il motore di esecuzione riceve i risultati dai nodi di dati.

9 Send Results

Il motore di esecuzione invia quei valori risultanti al driver.

10 Send Results

Il driver invia i risultati a Hive Interfaces.