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. |