Hive este un instrument de Big Data Analytics utilizat pe scară largă în afaceri și este un loc fantastic de început dacă ești nou în Big Data. Această lecție Apache Hive prezintă elementele fundamentale ale Apache Hive, de ce este necesar un stup, caracteristicile sale și tot ce ar trebui să știți.
Să înțelegem mai întâi cadrul Hadoop pe care este construit Apache Hive.
Apache Hadoop
Apache Hadoop este un program gratuit și open-source platformă pentru stocarea și procesarea seturilor mari de date, cu dimensiuni de la gigabytes la petabytes. Hadoop permite gruparea mai multor computere pentru a analiza seturi de date enorme în paralel, mai degrabă decât să necesite un singur computer mare pentru a stoca și analiza datele.
MapReduce și Hadoop Distributed File System sunt două dintre componente:
- MapReduce – MapReduce este o tehnică de programare paralelă pentru gestionarea unor volume uriașe de date organizate, semi-structurate și nestructurate pe clustere hardware de mărfuri.
- HDFS – HDFS (Hadoop Distributed File System) este o componentă cadru Hadoop care stochează și procesează date. Este un sistem de fișiere tolerant la erori care rulează pe hardware standard
Diferite sub-proiecte (instrumente) din ecosistemul Hadoop, inclusiv Sqoop, Pig și Hive, sunt folosite pentru a ajuta modulele Hadoop.
- Stup – Hive este un cadru pentru scrierea de scripturi în stil SQL care efectuează calcule MapReduce.
- Porc – Pig este un limbaj de programare procedural care poate fi folosit pentru a crea un script pentru procesele MapReduce.
- Sqoop – Sqoop este un instrument pentru importarea și exportul de date între HDFS și RDBMS.
Ce este Apache Hive?
Apache Hive este o sursă deschisă depozit de date program pentru citirea, scrierea și gestionarea seturilor uriașe de date stocate direct în Apache Hadoop Distributed File System (HDFS) sau în alte sisteme de stocare a datelor precum Apache HBase.
Dezvoltatorii SQL pot folosi Hive pentru a crea instrucțiuni Hive Query Language (HQL) pentru interogarea și analiza datelor care sunt comparabile cu instrucțiunile SQL obișnuite. A fost creat pentru a ușura programarea MapReduce, eliminând nevoia de a învăța și de a scrie cod Java lung. În schimb, vă puteți scrie interogările în HQL, iar Hive va construi harta și va reduce funcțiile pentru dvs.
Interfața asemănătoare SQL a Apache Hive a devenit standardul de aur pentru efectuarea de căutări ad-hoc, rezumarea și analiza datelor Hadoop. Când este inclus în cloud retele de calcul, această soluție este deosebit de rentabilă și scalabilă, motiv pentru care multe firme, inclusiv Netflix și Amazon, continuă să dezvolte și să îmbunătățească Apache Hive.
Istorie
În perioada petrecută pe Facebook, Joydeep Sen Sarma și Ashish Thusoo au creat împreună Apache Hive. Amândoi au recunoscut că pentru a profita la maximum de Hadoop, ar trebui să creeze niște sarcini Java Map-Reduce destul de complicate. Ei au recunoscut că nu vor putea să-și educe echipele de inginerie și analitică în expansiune rapidă cu privire la abilitățile de care ar avea nevoie pentru a folosi Hadoop în întreaga companie. Inginerii și analiștii au folosit frecvent SQL ca interfață de utilizator.
În timp ce SQL ar putea satisface majoritatea nevoilor de analiză, dezvoltatorii intenționau, de asemenea, să încorporeze programabilitatea Hadoop. Apache Hive a apărut din aceste două obiective: un limbaj declarativ bazat pe SQL, care a permis dezvoltatorilor să introducă propriile scripturi și programe atunci când SQL nu era suficient.
De asemenea, a fost dezvoltat pentru a deține metadate centralizate (pe baza Hadoop) despre toate seturile de date din companie, pentru a facilita construirea organizațiilor bazate pe date.
Cum funcționează Apache Hive?
Pe scurt, Apache Hive convertește un program de intrare scris în limbajul HiveQL (similar SQL) într-una sau mai multe sarcini Java MapReduce, Tez sau Spark. (Toate aceste motoare de execuție sunt compatibile cu Hadoop YARN.) După aceea, Apache Hive aranjează datele în tabele pentru sistemul de fișiere distribuit Hadoop HDFS) și efectuează sarcinile pe un cluster pentru a obține un răspuns.
Date
Tabelele Apache Hive sunt aranjate în același mod în care sunt organizate tabelele dintr-o bază de date relațională, cu unități de date variind ca dimensiune de la mai mare la mai mică. Bazele de date sunt formate din tabele care sunt împărțite în diviziuni, care sunt împărțite în continuare în găleți. HiveQL (Hive Query Language) este folosit pentru a accesa datele, care pot fi modificate sau anexate. Datele din tabel sunt serializate în fiecare bază de date și fiecare tabel are propriul său director HDFS.
Arhitectură
Acum vom vorbi despre cel mai important aspect al arhitecturii Hive. Componentele Apache Hive sunt următoarele:
Metastore — Ține evidența informațiilor despre fiecare tabel, cum ar fi structura și locația acestuia. Metadatele partiției sunt, de asemenea, incluse în Hive. Acest lucru permite șoferului să urmărească progresul diferitelor seturi de date răspândite în cluster. Datele sunt stocate într-un format convențional RDBMS. Metadatele Hive sunt extrem de importante pentru șofer pentru a menține evidența datelor. Serverul de rezervă dublează datele în mod regulat, astfel încât acestea să poată fi recuperate în cazul pierderii datelor.
Şofer – Declarațiile HiveQL sunt primite de un driver, care funcționează ca un controler. Prin stabilirea de sesiuni, șoferul inițiază execuția declarației. Ține evidența duratei de viață și a progresului executivului. În timpul execuției unei instrucțiuni HiveQL, driverul salvează metadatele necesare. De asemenea, servește ca punct de colectare a datelor sau a rezultatelor interogării în urma procesului de reducere.
compilator – Execută compilarea interogărilor HiveQL. Interogarea este acum convertită într-un plan de execuție. Sarcinile sunt enumerate în plan. Include, de asemenea, pașii pe care MapReduce trebuie să-i facă pentru a obține rezultatul tradus de interogare. Interogarea este convertită într-un arbore de sintaxă abstractă de către compilatorul Hive (AST). Convertește AST într-un grafic aciclic direcționat după verificarea compatibilității și a erorilor de compilare (DAG).
Instrumentul de optimizare a – Optimizează DAG prin efectuarea diferitelor modificări asupra planului de execuție. Combină transformări pentru o eficiență îmbunătățită, cum ar fi transformarea unei conducte de îmbinări într-o singură îmbinare. Pentru a îmbunătăți viteza, optimizatorul poate împărți activități, cum ar fi aplicarea unei transformări datelor înainte de a efectua o operație de reducere.
Executor testamentar – Executorul rulează sarcinile când compilarea și optimizarea sunt terminate. Locurile de muncă sunt canalizate de către Executor.
CLI, UI și Thrift Server – Interfața de linie de comandă (CLI) este o interfață de utilizator care permite unui utilizator extern să comunice cu Hive. Serverul thrift al lui Hive, similar cu protocoalele JDBC sau ODBC, permite clienților externi să comunice cu Hive prin intermediul unei rețele.
Securitate
Apache Hive este integrat cu securitatea Hadoop, care utilizează Kerberos pentru autentificarea reciprocă client-server. HDFS dictează permisiunile pentru fișierele nou generate în Apache Hive, permițându-vă să le aprobi de către utilizator, grup și alții.
caracteristici cheie
- Hive acceptă tabele externe, care vă permit să procesați datele fără a le stoca în HDFS.
- De asemenea, permite segmentarea datelor la nivel de tabel pentru a crește viteza.
- Apache Hive satisface excelent nevoia de interfață de nivel scăzut a Hadoop.
- Hive facilitează rezumarea, interogarea și analiza datelor.
- HiveQL nu necesită abilități de programare; o simplă înțelegere a interogărilor SQL este suficientă.
- De asemenea, putem folosi Hive pentru a efectua interogări ad-hoc pentru analiza datelor.
- Este scalabil, familiar și adaptabil.
- HiveQL nu necesită abilități de programare; o simplă înțelegere a interogărilor SQL este suficientă.
Beneficii
Apache Hive permite rapoarte de sfârșit de zi, evaluări zilnice ale tranzacțiilor, căutări ad-hoc și analize de date. Informațiile cuprinzătoare oferite de Apache Hive oferă avantaje competitive semnificative și vă ajută să răspundeți la cerințele pieței.
Iată câteva dintre beneficiile de a avea astfel de informații la îndemână:
- Usor de folosit – Cu limbajul său asemănător SQL, interogarea datelor este ușor de înțeles.
- Inserarea accelerată a datelor — Deoarece Apache Hive citește schema fără a verifica tipul tabelului sau definiția schemei, datele nu trebuie să fie citite, analizate și serializate pe disc în formatul intern al bazei de date. În schimb, într-o bază de date convențională, datele trebuie validate de fiecare dată când sunt adăugate.
- Scalabilitate superioară, flexibilitate și eficiență a costurilor – Deoarece datele sunt stocate în HDFS, Apache Hive poate stoca 100 de petaocteți de date, ceea ce o face o opțiune mult mai scalabilă decât o bază de date obișnuită. Apache Hive, ca serviciu Hadoop bazat pe cloud, permite clienților să rotească și să coboare rapid serverele virtuale pentru a face față sarcinilor de lucru în schimbare.
- Capacitate mare de lucru – Seturile mari de date pot gestiona până la 100,000 de interogări pe oră.
Limitări
- În general, interogările Apache Hive au o latență foarte mare.
- Suportul pentru subinterogare este limitat.
- Interogările în timp real și modificările la nivel de rând nu sunt disponibile în Apache Hive.
- Nu există suport pentru vederile materializate.
- În stup, acțiunile de actualizare și ștergere nu sunt acceptate.
- Nu este destinat pentru OLTP (proces de tranziție online).
Noțiuni introductive cu Apache Hive
Apache Hive este un partener puternic Hadoop care simplifică și eficientizează fluxurile de lucru. Pentru a profita la maximum de Apache Hive, integrarea perfectă este esențială. Primul pas este să mergi la .
1. Instalare Hive dintr-o versiune stabilă
Începeți prin a descărca cea mai recentă versiune stabilă a Hive dintr-una dintre oglinzile de descărcare Apache (vezi Lansări de stup). Tarball-ul trebuie apoi despachetat. Aceasta va crea un subfolder numit hive-xyz (unde xyz este numărul de lansare):
Setați variabila de mediu HIVE_HOME să indice directorul de instalare:
În cele din urmă, adăugați $HIVE_HOME/bin la dvs PATH
:
2. Running Hive
Hive folosește Hadoop, deci:
- trebuie să ai Hadoop în cale SAU
3. Operațiunea DLL
Crearea tabelului Hive
generează un tabel numit pokes cu două coloane, dintre care prima este un întreg și a doua este un șir.
Răsfoirea prin tabele
Listarea tuturor tabelelor
Modificarea și eliminarea meselor
Numele tabelelor pot fi schimbate și coloanele pot fi adăugate sau înlocuite:
Este de remarcat faptul că REPLACE COLUMNS înlocuiește toate coloanele existente, modificând doar structura tabelului și nu datele. Un SerDe nativ trebuie utilizat în tabel. REPLACE COLUMNS poate fi folosit și pentru a elimina coloane din schema unui tabel:
Droping Tables
Există multe operațiuni și funcții suplimentare în Apache Hive despre care puteți afla accesând site-ul web oficial.
Concluzie
Definiția Hive este o interfață de program de date pentru interogare și analiză pentru seturi de date uriașe care sunt construite pe Apache Hadoop. Profesioniștii îl aleg în locul altor programe, instrumente și software, deoarece este conceput în principal pentru date extinse Hive și este simplu de utilizat.
Sper că acest tutorial vă va ajuta să începeți cu Apache Hive și să vă eficientizați fluxurile de lucru. Spune-ne în comentarii.
Lasă un comentariu