Cos'è Hive in Hadoop? Storia e suoi componenti
Pubblicato: 2021-10-07Apache Hive è un sistema di warehousing open source basato su Hadoop. Hive viene utilizzato per eseguire query e analizzare enormi set di dati archiviati in Hadoop. Funziona elaborando dati sia strutturati che semi-strutturati.
Attraverso questo articolo, parliamo in dettaglio di Hive in Hadoop, la sua storia, la sua importanza, l'architettura Hive, alcune caratteristiche chiave, alcune limitazioni e altro ancora!
Sommario
Cos'è l'alveare?
Apache Hive è semplicemente un software di data warehouse creato utilizzando Hadoop come base. Prima di Apache Hive, gli ingegneri Big Data dovevano scrivere complessi lavori di riduzione della mappa per eseguire attività di query. Con Hive, d'altra parte, le cose si sono ridotte drasticamente poiché gli ingegneri ora devono solo conoscere SQL.
Hive funziona su un linguaggio noto come HiveQL (simile a SQL), rendendolo più semplice per gli ingegneri che hanno una conoscenza pratica di SQL. HiveQL traduce automaticamente le tue query SQL in lavori di riduzione della mappa che Hadoop può eseguire.
In tal modo, Apache presenta il concetto di astrazione nel funzionamento di Hadoop e consente agli esperti di dati di gestire set di dati complessi senza imparare il linguaggio di programmazione Java per lavorare con Hive. Apache Hive funziona sulla tua workstation e converte le query SQL in lavori di riduzione della mappa da eseguire sul cluster Hadoop. Hive classifica tutti i tuoi dati in tabelle, fornendo così una struttura a tutti i dati presenti in HDFS.
Storia di Apache Hive
Il team dell'infrastruttura dati ha presentato Apache Hive su Facebook. È una delle tecnologie che viene utilizzata in modo proattivo su Facebook per numerosi scopi interni. Nel corso degli anni, Apache Hive ha eseguito migliaia di lavori sul cluster con centinaia di utenti per una vasta gamma di applicazioni.
Il cluster Hive-Hadoop su Facebook memorizza più di 3 PB di dati grezzi. Può caricare 15 TB di dati in tempo reale ogni giorno. Da lì, Apache Hive è cresciuto ancora di più nei suoi casi d'uso e oggi è utilizzato da giganti come IBM, Yahoo, Amazon, FINRA, Netflix e altri.
Ottieni la tua certificazione di data science online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.
Perché la necessità di Apache Hive?
Prima di inventare Apache Hive, Facebook ha dovuto affrontare molte sfide come la dimensione sempre maggiore dei dati da analizzare e la totale incoerenza in questo grande set di dati. Queste sfide hanno reso difficile per Facebook gestire senza problemi le sue attività ad alta intensità di dati. Le tradizionali strutture basate su RDBMS non erano sufficienti per controllare la pressione sempre crescente.
Facebook ha introdotto per la prima volta la riduzione della mappa per superare queste sfide, ma poi l'ha ulteriormente semplificata offrendo Apache Hive, che funziona su HiveQL.
Alla fine, Apache Hive è emerso come il tanto necessario salvatore e ha aiutato Facebook a superare le varie sfide. Ora, utilizzando Apache Hive, Facebook è stato in grado di ottenere quanto segue:
- Evoluzione e flessibilità dello schema.
- Partizionamento e bucketing delle tabelle.
- Definizione delle tabelle Hive direttamente in HDFS.
- Disponibilità di driver ODBC/JDBC.
Tutto sommato, Apache Hive ha aiutato gli sviluppatori a risparmiare molto tempo che altrimenti andrebbe a scrivere complessi lavori di riduzione delle mappe. Hive semplifica il riepilogo, l'analisi, l'esecuzione di query e l'esplorazione dei dati.
Basandosi solo su SQL, Apache Hive è un framework veloce e scalabile ed è altamente estensibile. Se comprendi le query di base utilizzando SQL, sarai in grado di lavorare con Apache Hive in pochissimo tempo! Offre inoltre l'accesso ai file su diversi archivi dati come HBase e HDFS.
L'architettura di Apache Hive
Ora che hai compreso l'importanza e l'emergere di Apache Hive, diamo un'occhiata ai componenti principali di Apache Hive. L'architettura di Apache Hive include:
1. Metastore
Viene utilizzato per memorizzare i metadati per ciascuna delle tabelle. I metadati sono generalmente costituiti dalla posizione e dallo schema. Metastore comprende anche i metadati della partizione, che aiutano gli ingegneri a tenere traccia dell'avanzamento di diversi set di dati che sono stati distribuiti sui cluster. I dati qui archiviati sono nel tradizionale formato RDBMS.
2. Autista
Il driver in Apache Hive è come un controller responsabile della ricezione delle istruzioni HiveQL. Quindi, avvia l'esecuzione di queste istruzioni creando sessioni diverse. Il conducente è anche responsabile del monitoraggio e della gestione del ciclo di vita dell'implementazione e del suo avanzamento lungo il percorso. I driver contengono tutti i metadati importanti generati quando viene eseguita un'istruzione HiveQL. Funge anche da punto di raccolta dei dati ottenuti dopo l'operazione di riduzione della mappa.
3. Compilatore
Il compilatore viene utilizzato per compilare le query HiveQL. Converte le query generate dagli utenti in un piano di esecuzione infallibile che contiene tutte le attività che devono essere eseguite. Il piano include anche tutti i passaggi e le procedure necessarie per seguire map-reduce per ottenere l'output richiesto. Il compilatore Hive converte la query di input dell'utente in AST (Abstract Syntax Tree) per verificare la presenza di errori in fase di compilazione o problemi di compatibilità. L'AST viene trasformato in un grafico aciclico diretto (DAG) quando non si verifica nessuno dei problemi.
4. Ottimizzatore
L'ottimizzatore esegue tutte le trasformazioni sul piano di esecuzione necessarie per raggiungere il DAG ottimizzato. Lo fa aggregando tutte le trasformazioni insieme, ad esempio convertendo una serie di singoli join in un unico join, per migliorare le prestazioni. Inoltre, l'ottimizzatore può suddividere diverse attività applicando una trasformazione ai dati prima che venga eseguita l'operazione ridotta, ancora una volta per migliorare le prestazioni complessive.
5. Esecutore –
Una volta che Apache Hive ha eseguito le attività di compilazione e ottimizzazione, l'esecutore esegue le esecuzioni finali. Si occupa di organizzare le attività e portarle a completamento.
6. CLI, interfaccia utente e server dell'usato
L'interfaccia della riga di comando (CLI) viene utilizzata per fornire all'utente esterno un'interfaccia utente per interagire con le diverse funzionalità di Apache Hive. La CLI è ciò che costituisce l'interfaccia utente di Hive per gli utenti finali. D'altra parte, il server Thrift consente ai client esterni di interagire con Hive su una rete, in modo simile ai protocolli ODBC o JDBC.
Funzionalità principali di Apache Hive
Come accennato in precedenza, Apache Hive ha apportato un cambiamento tanto necessario nel modo in cui gli ingegneri hanno lavorato sui lavori di dati. Java non era più il linguaggio di riferimento e gli sviluppatori potevano lavorare semplicemente utilizzando SQL. Oltre a questo, ci sono anche molte altre caratteristiche essenziali di Hive, come ad esempio:
- Apache Hive offre il riepilogo, l'analisi e l'esecuzione di query dei dati in un modo molto più semplificato.
- Hive supporta tabelle interne ed esterne, rendendo possibile lavorare con dati esterni senza inserirli nell'H DFS.
- Apache Hive funziona perfettamente per i requisiti di interfaccia di basso livello di Hadoop.
- Supportando il partizionamento dei dati a livello delle tabelle, Apache Hive aiuta a migliorare le prestazioni complessive.
- Ha un ottimizzatore basato su regole per ottimizzare diversi piani logici.
- Funziona su HiveQL, un linguaggio simile a SQL, il che significa che gli sviluppatori non hanno bisogno di padroneggiare un altro linguaggio per lavorare con set di dati di grandi dimensioni.
- L'esecuzione di query in Hive è estremamente semplice, simile a SQL.
- Possiamo anche eseguire query ad hoc per l'analisi dei dati utilizzando Hive.
Limitazione di Apache Hive
Poiché il mondo della Data Science è relativamente nuovo e in continua evoluzione, anche i migliori strumenti disponibili sul mercato presentano alcune limitazioni. Risolvere questi limiti è ciò che ci darà i prossimi migliori strumenti. Ecco alcune limitazioni dell'utilizzo di Apache Hive da tenere a mente:
- Hive non offre aggiornamenti a livello di riga e query in tempo reale.
- Apache Hive fornisce una latenza accettabile per l'interattività.
- Non è il massimo per lavorare con le transazioni online.
- La latenza nelle query Hive è generalmente superiore alla media.
In conclusione
Apache Hive ha apportato miglioramenti drastici e sorprendenti nel modo in cui gli ingegneri dei dati lavorano su set di dati di grandi dimensioni. Inoltre, eliminando completamente la necessità del linguaggio di programmazione Java, Apache Hive ha portato un comfort familiare ai data engineer. Oggi puoi lavorare senza problemi con Apache Hive se hai le conoscenze fondamentali delle query SQL.
Come accennato in precedenza, la scienza dei dati è un campo dinamico e in continua evoluzione. Siamo sicuri che i prossimi anni porteranno alla luce nuovi strumenti e framework per semplificare ulteriormente le cose. Se sei un appassionato di dati che cerca di imparare tutti gli strumenti del mestiere di Data Science, questo è il momento migliore per fare pratica con strumenti Big Data come Hive.
In upGrad, abbiamo guidato e guidato studenti di tutto il mondo e aiutato persone di diversa estrazione a stabilire una solida base nel settore della scienza dei dati. I nostri insegnanti esperti, le partnership di settore, l'assistenza al collocamento e la solida rete di ex alunni ti assicurano che non sarai mai solo in questo viaggio. Quindi dai un'occhiata al nostro programma Executive PG in Data Science e iscriviti a quello che fa per te: al resto pensiamo noi!
Apache Hive è un framework o un sistema utilizzato per l'archiviazione, l'esecuzione di query e l'analisi di grandi insiemi di dati. Apache Hive è stato introdotto da Facebook per migliorare le sue operazioni interne e da allora è stato parte integrante dello spettro di Data Science. No! Solo la conoscenza pratica di SQL sarà sufficiente per iniziare con Apache Hive! Apache Hive viene generalmente utilizzato per OLAP (elaborazione batch) e generalmente non viene utilizzato per OLTP a causa delle operazioni in tempo reale sul database.Cos'è Apache Hive in Hadoop?
Devo imparare una lingua particolare per lavorare con Apache Hive in Hadoop?
Per cosa NON viene utilizzato Apache Hive?