Hive è uno strumento di analisi dei Big Data ampiamente utilizzato nel settore ed è un ottimo punto di partenza se non conosci i Big Data. Questa lezione di Apache Hive illustra i fondamenti di Apache Hive, il motivo per cui è necessario un alveare, le sue caratteristiche e tutto ciò che dovresti sapere.
Per prima cosa comprendiamo il framework Hadoop su cui è basato Apache Hive.
Apache Hadoop
Apache Hadoop è un programma gratuito e open-source piattaforma per l'archiviazione e l'elaborazione di grandi set di dati di dimensioni variabili da gigabyte a petabyte. Hadoop consente di raggruppare numerosi computer per analizzare enormi set di dati in parallelo, invece di richiedere un unico grande computer per archiviare e analizzare i dati.
MapReduce e Hadoop Distributed File System sono due dei componenti:
- MapReduce – MapReduce è una tecnica di programmazione parallela per la gestione di enormi volumi di dati organizzati, semistrutturati e non strutturati su cluster hardware di base.
- HDFS – HDFS (Hadoop Distributed File System) è un componente del framework Hadoop che archivia ed elabora i dati. È un file system a tolleranza di errore che funziona su hardware standard
Diversi sottoprogetti (strumenti) nell'ecosistema Hadoop, inclusi Sqoop, Pig e Hive, vengono utilizzati per aiutare i moduli Hadoop.
- Alveare – Hive è un framework per la scrittura di script in stile SQL che eseguono calcoli MapReduce.
- Maiale – Pig è un linguaggio di programmazione procedurale che può essere utilizzato per creare uno script per i processi MapReduce.
- Sqop – Sqoop è uno strumento per importare ed esportare dati tra HDFS e RDBMS.
Che cosa è l' Alveare di Apache?
Apache Hive è un open source data warehouse programma per leggere, scrivere e gestire enormi set di dati archiviati direttamente in Apache Hadoop Distributed File System (HDFS) o altri sistemi di archiviazione dati come Apache HBase.
Gli sviluppatori SQL possono utilizzare Hive per creare istruzioni Hive Query Language (HQL) per query e analisi di dati paragonabili alle normali istruzioni SQL. È stato creato per semplificare la programmazione di MapReduce, eliminando la necessità di apprendere e scrivere codice Java lungo. Invece, puoi scrivere le tue query in HQL e Hive creerà la mappa e ridurrà le funzioni per te.
L'interfaccia simile a SQL di Apache Hive è diventata il Gold Standard per eseguire ricerche ad hoc, riassumere e analizzare i dati Hadoop. Quando incluso nel cloud reti informatiche, questa soluzione è particolarmente conveniente e scalabile, motivo per cui molte aziende, tra cui Netflix e Amazon, continuano a sviluppare e migliorare Apache Hive.
Storia
Durante il loro periodo su Facebook, Joydeep Sen Sarma e Ashish Thusoo hanno co-creato Apache Hive. Entrambi hanno riconosciuto che per ottenere il massimo da Hadoop, avrebbero dovuto creare alcune attività Java Map-Reduce piuttosto complicate. Hanno riconosciuto che non sarebbero stati in grado di istruire i loro team di ingegneria e analisi in rapida espansione sulle competenze di cui avrebbero avuto bisogno per sfruttare Hadoop in tutta l'azienda. Ingegneri e analisti utilizzavano spesso SQL come interfaccia utente.
Sebbene SQL potesse soddisfare la maggior parte delle esigenze di analisi, gli sviluppatori intendevano anche incorporare la programmabilità di Hadoop. Apache Hive è nato da questi due obiettivi: un linguaggio dichiarativo basato su SQL che consentiva anche agli sviluppatori di inserire i propri script e programmi quando SQL non bastava.
È stato inoltre sviluppato per contenere metadati centralizzati (basati su Hadoop) su tutti i set di dati dell'azienda per facilitare la costruzione di organizzazioni basate sui dati.
Come funziona Apache Hive?
In poche parole, Apache Hive converte un programma di input scritto nel linguaggio HiveQL (simile a SQL) in una o più attività Java MapReduce, Tez o Spark. (Tutti questi motori di esecuzione sono compatibili con Hadoop YARN.) Successivamente, Apache Hive organizza i dati in tabelle per Hadoop Distributed File System HDFS) ed esegue le attività su un cluster per ottenere una risposta.
Dati
Le tabelle Apache Hive sono disposte nello stesso modo in cui sono organizzate le tabelle in un database relazionale, con unità di dati di dimensioni variabili da più grandi a più piccole. I database sono costituiti da tabelle suddivise in divisioni, ulteriormente suddivise in bucket. HiveQL (Hive Query Language) viene utilizzato per accedere ai dati, che possono essere modificati o aggiunti. I dati della tabella vengono serializzati all'interno di ogni database e ogni tabella ha la propria directory HDFS.
Architettura
Ora parleremo dell'aspetto più importante di Hive Architecture. I componenti di Apache Hive sono i seguenti:
Metastotore — Tiene traccia delle informazioni su ogni tabella, come la sua struttura e posizione. Anche i metadati della partizione sono inclusi in Hive. Ciò consente al conducente di tenere traccia dell'avanzamento di diversi set di dati sparsi nel cluster. I dati vengono archiviati in un formato RDBMS convenzionale. I metadati dell'hive sono estremamente importanti per il conducente per tenere traccia dei dati. Il server di backup duplica regolarmente i dati in modo che possano essere recuperati in caso di perdita di dati.
Guidatore – Le istruzioni HiveQL vengono ricevute da un driver, che funge da controller. Stabilendo sessioni, il conducente avvia l'esecuzione della dichiarazione. Tiene traccia della durata della vita e dei progressi dell'esecutivo. Durante l'esecuzione di un'istruzione HiveQL, il driver salva i metadati richiesti. Serve anche come punto di raccolta dei dati o dei risultati delle query dopo il processo di riduzione.
Compiler – Esegue la compilazione della query HiveQL. La query è ora convertita in un piano di esecuzione. Le attività sono elencate nel piano. Include anche i passaggi che MapReduce deve eseguire per ottenere il risultato tradotto dalla query. La query viene convertita in un albero della sintassi astratta dal compilatore (AST) di Hive. Converte l'AST in un grafico aciclico diretto dopo aver verificato la compatibilità e gli errori in fase di compilazione (DAG).
Optimizer – Ottimizza il DAG eseguendo diverse modifiche sul piano di esecuzione. Combina le trasformazioni per una maggiore efficienza, come trasformare una pipeline di join in un unico join. Per migliorare la velocità, l'ottimizzatore potrebbe dividere le attività, come l'applicazione di una trasformazione ai dati prima di eseguire un'operazione di riduzione.
esecutore – L'esecutore esegue le attività al termine della compilazione e dell'ottimizzazione. I lavori sono pipeline dall'esecutore.
CLI, interfaccia utente e server dell'usato – L'interfaccia della riga di comando (CLI) è un'interfaccia utente che consente a un utente esterno di comunicare con Hive. Il server dell'usato di Hive, simile ai protocolli JDBC o ODBC, consente ai client esterni di comunicare con Hive tramite una rete.
Sicurezza
Apache Hive è integrato con la sicurezza Hadoop, che utilizza Kerberos per l'autenticazione reciproca client-server. L'HDFS determina le autorizzazioni per i file appena generati in Apache Hive, consentendoti l'approvazione da parte dell'utente, del gruppo e di altri.
Funzionalità principali
- Hive supporta tabelle esterne, che ti consentono di elaborare i dati senza archiviarli in HDFS.
- Consente inoltre la segmentazione dei dati a livello di tabella per aumentare la velocità.
- Apache Hive soddisfa in modo eccellente le esigenze di interfaccia di basso livello di Hadoop.
- Hive semplifica il riepilogo, l'esecuzione di query e l'analisi dei dati.
- HiveQL non richiede competenze di programmazione; è sufficiente una semplice comprensione delle query SQL.
- Possiamo anche utilizzare Hive per condurre query ad hoc per l'analisi dei dati.
- È scalabile, familiare e adattabile.
- HiveQL non richiede competenze di programmazione; è sufficiente una semplice comprensione delle query SQL.
Benefici
Apache Hive consente report di fine giornata, valutazioni giornaliere delle transazioni, ricerche ad hoc e analisi dei dati. Gli approfondimenti completi forniti da Apache Hive offrono vantaggi competitivi significativi e facilitano la risposta alle richieste del mercato.
Ecco alcuni dei vantaggi di avere tali informazioni prontamente disponibili:
- Facilità d'uso – Con il suo linguaggio simile a SQL, l'interrogazione dei dati è semplice da capire.
- Inserimento dati accelerato — Poiché Apache Hive legge lo schema senza verificare il tipo di tabella o la definizione dello schema, i dati non devono essere letti, analizzati e serializzati su disco nel formato interno del database. Al contrario, in un database convenzionale, i dati devono essere convalidati ogni volta che vengono aggiunti.
- Scalabilità, flessibilità ed economicità superiori – Poiché i dati sono archiviati nell'HDFS, Apache Hive può contenere centinaia di petabyte di dati, rendendolo un'opzione molto più scalabile rispetto a un tipico database. Apache Hive, come servizio Hadoop basato su cloud, consente ai clienti di avviare e disattivare rapidamente server virtuali per soddisfare carichi di lavoro in continua evoluzione.
- Ampia capacità di lavoro – I set di dati di grandi dimensioni possono gestire fino a 100,000 query all'ora.
Limiti
- In generale, le query Apache Hive hanno una latenza molto elevata.
- Il supporto per le sottoquery è limitato.
- Le query in tempo reale e le modifiche a livello di riga non sono disponibili in Apache Hive.
- Non c'è supporto per le viste materializzate.
- Nell'hive, le azioni di aggiornamento ed eliminazione non sono supportate.
- Non inteso per OLTP (processo di transizione online).
Iniziare con Apache Hive
Apache Hive è un forte partner Hadoop che semplifica e ottimizza i tuoi flussi di lavoro. Per ottenere il massimo da Apache Hive, è essenziale una perfetta integrazione. Il primo passo è andare al sito web.
1. Installazione Hive da una versione stabile
Inizia scaricando la versione stabile più recente di Hive da uno dei mirror di download di Apache (vedi Rilasci dell'alveare). Il tarball deve quindi essere disimballato. Questo creerà una sottocartella chiamata hive-xyz (dove xyz è il numero di versione):
Impostare la variabile di ambiente HIVE_HOME in modo che punti alla directory di installazione:
Infine, aggiungi $HIVE_HOME/bin al tuo PATH
:
2. Alveare in esecuzione
Hive usa Hadoop, quindi:
- devi avere Hadoop nel tuo percorso OPPURE
3. Operazione DLL
Creazione di una tabella dell'alveare
genera una tabella denominata pokes con due colonne, la prima delle quali è un intero e la seconda è una stringa.
Sfogliando le tabelle
Elenco di tutte le tabelle
Alterare e far cadere le tabelle
I nomi delle tabelle possono essere modificati e le colonne possono essere aggiunte o sostituite:
Vale la pena notare che REPLACE COLUMNS sostituisce tutte le colonne esistenti modificando solo la struttura della tabella e non i dati. Nella tabella deve essere utilizzato un SerDe nativo. REPLACE COLUMNS può essere utilizzato anche per rimuovere colonne dallo schema di una tabella:
Tabelle cadenti
Ci sono molte operazioni e funzionalità aggiuntive in Apache Hive che potresti conoscere visitando il sito Web ufficiale.
Conclusione
La definizione dell'hive è un'interfaccia del programma di dati per l'esecuzione di query e l'analisi di enormi set di dati basati su Apache Hadoop. I professionisti lo scelgono rispetto ad altri programmi, strumenti e software poiché è progettato principalmente per dati estesi di Hive ed è semplice da usare.
Spero che questo tutorial ti aiuti a iniziare con Apache Hive e a rendere i tuoi flussi di lavoro più efficienti. Fateci sapere nei commenti.
Lascia un Commento