keyboard_arrow_up

Apache Hive

Apache Hive è un framework open-source, sviluppato sulla base di Hadoop, che facilita l’esecuzione di query e la gestione di grandi quantità di dati in sistemi distribuiti e fornisce:

  • strumenti per eseguire facilmente estrazioni/trasformazioni/caricamenti (ETL) di dati;
  • un meccanisco per imporre una struttura ai dati con diversi formati;
  • accesso ai file memorizzati direttamente nell’HDFS e in altri sistemi di archiviazione come Apache HBase;
  • esecuzione di query via MapReduce;

L’approccio generale di Hive è quello di proiettare una struttura di una tabella sul dataset per poi manipolarla con un linguaggio di interrogazione.
Dato che i dati sono memorizzati nell’HDFS, le operazioni possono essere scalate in tutti i datanodes potendo, così, manipolare grandi quantità di dati velocemente.

Hive-ide


L’interrogazione della base dati avviene tramite il linguaggio HiveQL che traduce automaticamente le query SQL-like in job MapReduce ed eseguite in Hadoop.
Con HiveQL, inoltre, è possible realizzare script MapReduce personalizzati che possono essere aggiunti alle query.

Come lavora Hive

Le tabelle di Hive, simili a quelle dei database relazionali, sono partizionate e possono essere interrogate tramite un semplice linguaggio d”interrogazione; non ci sono limitazioni nella manipolazioni dei dati, infatti, possono essere aggiornati, inseriti ed eliminati.

Entrando nel dettaglio, i dati nelle tabelle sono serializzati e memorizzati in directory nel file system distribuito di Hadoop (HDFS).  Ogni tabella può essere suddivisa in partizioni; ogni partizione viene memorizzata in una sotto-directory della directory della tabella.

Hive supporta tutti i formati più comuni di dati come BIGINT, BINARY, BOOLEAN, CHAR, DECIMAL, DOUBLE, FLOAT, INT, SMALLINT, STRING, TIMESTAMP, e TINYINT. Inoltre, questi formati possono essere combinati per formare tipi di dati complessi, come ad esempio strutture, mappe e array.

Componenti di Hive

Hive comprende due componenti, HCatalog e WebHCat. HCatalog è un sistema di gestione tabelle e memorizzazione per Hadoop che consente agli utenti con diversi strumenti di elaborazione – tra cui Pig e MapReduce – di leggere e scrivere più facilmente dati sulle tabelle.

WebHCat, invece, è un servizio che permette di eseguire job Hadoop MapReduce, Pig e Hive o operazioni sui metadati utilizzando una interfaccia HTTP.

© FEDERICO BAGATO. All Rights Reserved. Cookie Policy