Hive hè un strumentu di Big Data Analytics largamente utilizatu in l'affari, è hè un locu fantasticu per inizià sè site novu in Big Data. Questa lezione di Apache Hive passa per i fundamenti di Apache Hive, perchè un bugne hè necessariu, e so caratteristiche, è tuttu ciò chì duvete sapè.
Capemu prima u framework Hadoop nantu à quale Apache Hive hè custruitu.
Apache Hadoop
Apache Hadoop hè gratuitu è open-source piattaforma per almacenà è trasfurmà grandi datasets chì varienu in dimensioni da gigabyte à petabyte. Hadoop permette di raggruppare numerosi computer per analizà enormi datasets in parallelu, invece di esse bisognu di un unicu computer grande per almacenà è analizà e dati.
MapReduce è Hadoop Distributed File System sò dui di i cumpunenti:
- MapReduce - MapReduce hè una tecnica di prugrammazione parallela per a gestione di volumi enormi di dati organizzati, semi-strutturati è micca strutturati nantu à clusters di hardware commodity.
- HDFS - HDFS (Hadoop Distributed File System) hè un cumpunente di framework Hadoop chì almacena è processa dati. Hè un sistema di fugliale tolerante à i difetti chì funziona nantu à hardware standard
Diversi sub-prughjetti (arnesi) in l'ecosistema Hadoop, cumpresi Sqoop, Pig, è Hive, sò usati per aiutà i moduli Hadoop.
- bugnu - Hive hè un framework per scrive script in stile SQL chì realizanu calculi MapReduce.
- Pig - Pig hè una lingua di prugrammazione procedurale chì pò esse usata per creà un script per i prucessi MapReduce.
- Sqoop - Sqoop hè un strumentu per impurtà è esportà dati trà HDFS è RDBMS.
Chì ghjè Apache Hive?
Apache Hive hè un open-source datu magazinu prugramma per leghje, scrive è gestisce enormi seti di dati almacenati direttamente in Apache Hadoop Distributed File System (HDFS) o altri sistemi di almacenamiento di dati cum'è Apache HBase.
I sviluppatori SQL ponu utilizà Hive per creà dichjarazioni Hive Query Language (HQL) per a ricerca è l'analisi di dati chì sò paragunabili à e dichjarazioni SQL regulari. Hè statu creatu per fà a prugrammazione MapReduce più faciule eliminendu a necessità di amparà è di scrive longu codice Java. Invece, pudete scrive e vostre dumande in HQL, è Hive custruisce a mappa è riduce e funzioni per voi.
L'interfaccia simile à SQL di Apache Hive hè diventata u Gold Standard per eseguisce ricerche ad-hoc, riassuntu è analizà e dati Hadoop. Quandu hè inclusu in u nuvulu rete di informatica, Sta suluzione hè soprattuttu costu-efficace è scalable, chì hè per quessa assai imprese, cumpresi Netflix è Amazon, cuntinueghjanu à sviluppà è migliurà Apache Hive.
Storia
Durante u so tempu in Facebook, Joydeep Sen Sarma è Ashish Thusoo anu co-creatu Apache Hive. Tramindui anu ricunnisciutu chì per ottene u massimu di Hadoop, duveranu creà alcune attività Java Map-Reduce abbastanza complicate. Anu ricunnisciutu ch'elli ùn puderanu micca educà e so squadre di ingegneria è analitiche in rapida espansione nantu à e cumpetenze chì avianu bisognu per sfruttà Hadoop in tutta a cumpagnia. L'ingegneri è l'analisti utilizanu spessu SQL cum'è interfaccia d'utilizatore.
Mentre SQL puderia risponde à a maiò parte di i bisogni analitici, i sviluppatori anu ancu pensatu à incorpore a programabilità di Hadoop. Apache Hive nasce da questi dui obiettivi: una lingua dichjarazione basata in SQL chì hà ancu permessu à i sviluppatori di purtà i so scripti è prugrammi quandu SQL ùn era micca abbastanza.
Hè statu ancu sviluppatu per mantene a metadata centralizata (basata in Hadoop) nantu à tutti i datasets in a cumpagnia per fà a custruzzione di l'urganisazione guidata da dati più faciule.
Cumu funziona Apache Hive?
In poche parole, Apache Hive converte un prugramma di input scrittu in a lingua HiveQL (SQL-like) in una o più attività Java MapReduce, Tez, o Spark. (Tutti sti mutori d'esekzione sò cumpatibili cù Hadoop YARN.) Dopu questu, Apache Hive arrange e dati in tavule per u Hadoop Distributed File System HDFS) è eseguisce i travaglii nantu à un cluster per avè una risposta.
Dati
I tavulini Apache Hive sò disposti in a listessa manera chì e tavule in una basa di dati relazionale sò urganizati, cù unità di dati chì varienu in grandezza da più grande à più chjuca. I basa di dati sò custituiti da tavule chì sò divisi in divisioni, chì sò più divisi in buckets. HiveQL (Hive Query Language) hè utilizatu per accede à e dati, chì ponu esse alterati o appiccicati. I dati di a tabella sò serializzati in ogni basa di dati, è ogni tavula hà u so propiu repertoriu HDFS.
architettura
Avà parlemu di l'aspettu più impurtante di l'architettura Hive. I cumpunenti di Apache Hive sò i seguenti:
Metastore - Mantene a traccia di l'infurmazioni nantu à ogni tavula, cum'è a so struttura è u locu. I metadati di partizioni sò ancu inclusi in Hive. Questu permette à u cunduttore di seguità u prugressu di e diverse sete di dati sparse in u cluster. I dati sò almacenati in un furmatu RDBMS convenzionale. I metadati Hive sò estremamente impurtanti per u cunduttore per mantene a traccia di e dati. U servitore di salvezza duplicate data nantu à una basa regulare in modu chì pò esse recuperatu in casu di perdita di dati.
cunduttori - I dichjarazioni HiveQL sò ricevuti da un driver, chì funziona cum'è un controller. Stabbiliscendu sessioni, u driver inizia l'esekzione di a dichjarazione. Tene traccia di a vita di l'esecutivu è u prugressu. Durante l'esekzione di una dichjarazione HiveQL, u driver salva i metadati necessarii. Serve ancu com'è un puntu di raccolta di risultati di dati o di quistione dopu à u prucessu Reduce.
Compilatore - Esegue a compilazione di dumande HiveQL. A dumanda hè avà cunvertita in un pianu di esecuzione. I travaglii sò listati in u pianu. Include ancu i passi chì MapReduce deve piglià per ottene u risultatu traduttu da a dumanda. A dumanda hè cunvertita in un Arbulu di Sintassi Astratta da u compilatore di Hive (AST). Cunverte l'AST in un Graficu Aciclicu Direttu dopu avè verificatu a cumpatibilità è i difetti di compilazione (DAG).
Optimizer - Ottimizza DAG eseguendu diverse cambiamenti nantu à u pianu di esecuzione. Unisce trasfurmazioni per una efficienza mejorata, cum'è trasfurmà una pipeline di unione in una sola unione. Per migliurà a velocità, l'ottimisatore puderia dividisce l'attività, cum'è applicà una trasfurmazioni à e dati prima di fà una operazione di riduzione.
Esecutore - L'esecutore esegue i travaglii quandu a compilazione è l'ottimisazione sò finite. I travaglii sò pipelined da l'esecutore.
CLI, UI, è Thrift Server - L'interfaccia di linea di cumanda (CLI) hè una interfaccia d'utilizatore chì permette à un utilizatore esternu di cumunicà cù Hive. U servitore thrift di Hive, simile à i protokolli JDBC o ODBC, permette à i clienti esterni di cumunicà cù Hive via una reta.
Sistemi
Apache Hive hè integratu cù a sicurità Hadoop, chì usa Kerberos per l'autentificazione mutuale client-server. L'HDFS detta i permessi per i schedarii di novu generati in Apache Hive, chì vi permette di appruvà da l'utilizatori, u gruppu è altri.
carattiristichi Key
- Hive supporta tavule esterne, chì permettenu di processà e dati senza almacenà in HDFS.
- Permette ancu a segmentazione di dati à u livellu di a tavola per aumentà a velocità.
- Apache Hive risponde perfettamente à l'esigenza di l'interfaccia di pocu livellu di Hadoop.
- Hive facilita a riassunzione di dati, a dumanda è l'analisi più faciule.
- HiveQL ùn hà micca bisognu di cumpetenze di prugrammazione; una comprensione simplice di e dumande SQL hè abbastanza.
- Pudemu ancu aduprà Hive per fà dumande ad-hoc per l'analisi di dati.
- Hè scalabile, familiare è adattabile.
- HiveQL ùn hà micca bisognu di cumpetenze di prugrammazione; una comprensione simplice di e dumande SQL hè abbastanza.
benefici
Apache Hive permette rapporti di fine di ghjornu, valutazioni di transazzione ogni ghjornu, ricerche ad-hoc è analisi di dati. L'insights cumpleti furniti da Apache Hive dà vantaghji competitivi significativi è facenu più faciule per risponde à e richieste di u mercatu.
Eccu alcuni di i vantaghji di avè tali informazioni prontamente dispunibili:
- Faciulità di usu - Cù a so lingua simile à SQL, l'interrogazione di dati hè simplice di capiscenu.
- Inserzione di dati accelerata - Perchè Apache Hive leghje u schema senza verificà u tipu di tabella o a definizione di schema, i dati ùn anu micca esse letti, analizati è serializati à u discu in u formatu internu di a basa di dati. In cuntrastu, in una basa di dati cunvinziunali, i dati devenu esse validati ogni volta chì sò aghjuntu.
- Scalabilità superiore, flessibilità è efficienza di costu - Perchè i dati sò almacenati in HDFS, Apache Hive pò cuntene 100s di petabyte di dati, facendu una opzione assai più scalabile chè una basa di dati tipica. Apache Hive, cum'è un serviziu Hadoop basatu in nuvola, permette à i clienti di spinghja rapidamente è scende i servitori virtuali per risponde à i carichi di travagliu cambianti.
- Vasta capacità di travagliu - Grandi seti di dati ponu trattà finu à 100,000 XNUMX dumande per ora.
Limitazioni
- In generale, e dumande Apache Hive anu una latenza assai alta.
- U supportu di subquery hè limitatu.
- E dumande in tempu reale è i cambiamenti à livellu di fila ùn sò micca dispunibili in Apache Hive.
- Ùn ci hè micca supportu per vede materializzati.
- In l'alve, l'azzioni d'aghjurnamentu è di sguassà ùn sò micca supportati.
- Ùn hè micca destinatu à OLTP (processu di transizione in linea).
Cumincià cù Apache Hive
Apache Hive hè un forte partenariu di Hadoop chì simplifica è razionalizza i vostri flussi di travagliu. Per ottene u massimu di Apache Hive, l'integrazione perfetta hè essenziale. U primu passu hè di andà à u situ.
1. Installazione Hive da una Stable Release
Accuminciate per scaricà a versione stabile più recente di Hive da unu di i specchi di scaricamentu Apache (vede Hive Releases). Allora u tarball deve esse sbulicatu. Questu hà da creà una subcartella chjamata hive-xyz (induve xyz hè u numeru di liberazione):
Pone a variabile d'ambiente HIVE_HOME per indicà à u cartulare di installazione:
Infine, aghjunghje $HIVE_HOME/bin à u vostru PATH
:
2. Running Hive
Hive usa Hadoop, cusì:
- duvete avè Hadoop in a vostra strada O
3. Operazione DLL
Creazione di una Tavola Hive
genera una tavula chjamata pokes cù duie colonne, u primu di quale hè un integer è u sicondu hè una stringa.
Navigazione trà e Tabelle
Lista di tutti i tavulini
Alterendu è abbandunà e tavule
I nomi di e tavule ponu esse cambiati è e colonne ponu esse aghjuntu o rimpiazzate:
Hè da nutà chì REPLACE COLUMNS rimpiazza tutte e culonne esistenti mentre cambia solu a struttura di a tavula è micca i dati. Un SerDe nativu deve esse usatu in a tavula. REPLACE COLUMNS pò ancu esse usatu per sguassà e colonne da u schema di una tavula:
Dropping Tables
Ci sò parechje operazioni è funzioni supplementari in Apache Hive chì pudete amparà visitendu u situ ufficiale.
cunchiusioni
A definizione di Hive hè una interfaccia di u prugramma di dati per l'interrogazione è l'analisi per enormi datasets chì sò custruiti nantu à Apache Hadoop. I prufessiunali sceglienu nantu à altri prugrammi, arnesi è software postu chì hè principalmente pensatu per Hive vaste dati è hè simplice di utilizà.
Spergu chì stu tutoriale vi aiuta à inizià cù Apache Hive è rende i vostri flussi di travagliu più efficaci. Fateci sapè in i cumenti.
Lascia un Audiolibro