Što je Hive? Architekstura i načini rada
Što je Hive?
Hive je ETL i alat za skladištenje podataka razvijen na vrhu Hadoop distribuiranog datotečnog sustava (HDFS). Hive olakšava posao za obavljanje operacija kao što su
- Enkapsulacija podataka
- Ad-hoc upiti
- Analiza velikih skupova podataka
Važne karakteristike košnice
- U Hiveu se prvo kreiraju tablice i baze podataka, a zatim se podaci učitavaju u te tablice.
- Košnica kao skladište podataka dizajnirano za upravljanje i upite samo strukturiranih podataka koji su pohranjeni u tablicama.
- Iako se bavi strukturiranim podacima, Map Reduce nema značajke optimizacije i upotrebljivosti poput UDF-ova, ali okvir Hive ima. Optimizacija upita odnosi se na učinkovit način izvršavanja upita u smislu izvedbe.
- Hiveov jezik inspiriran SQL-om odvaja korisnika od složenosti Map Reduce programiranja. Ponovno koristi poznate koncepte iz svijeta relacijskih baza podataka, poput tablica, redaka, stupaca i shema, itd. radi lakšeg učenja.
- Hadoopovo programiranje radi na ravnim datotekama. Dakle, Hive može koristiti strukture direktorija za "particioniranje" podataka za poboljšanje performansi na određenim upitima.
- Nova i važna komponenta Hive-a, tj. Metastore koji se koristi za pohranu informacija o shemi. Ovaj Metastore obično se nalazi u relacijskoj bazi podataka. Možemo komunicirati s Hive koristeći metode kao što su
- Web GUI
- Java Database Connectivity (JDBC) sučelje
- Većina interakcija obično se odvija preko sučelja naredbenog retka (CLI). Hive pruža CLI za pisanje Hive upita koristeći Hive Query Language (HQL)
- Općenito, HQL sintaksa je slična SQL sintaksu s kojom je većina analitičara podataka upoznata. Uzorak upita u nastavku prikazuje sve zapise prisutne u spomenutom nazivu tablice.
- Uzorak upita : Odaberite * iz
- Hive podržava četiri formata datoteka TEXTFILE, SEQUENCEFILE, ORC i RCFILE (Datoteka u stupcu zapisa).
- Za pohranu metapodataka jednog korisnika, Hive koristi derby bazu podataka, a za slučaj metapodataka više korisnika ili zajedničkih metapodataka, Hive koristi MYSQL.
Za postavljanje MySQL kao baza podataka i za pohranjivanje informacija metapodataka provjerite Vodič “Instalacija i konfiguracija HIVE i MYSQL”
Neke od ključnih točaka o Hiveu:
- Glavna razlika između HQL-a i SQL-a je u tome što se Hive upit izvršava na Hadoop-ovoj infrastrukturi, a ne na tradicionalnoj bazi podataka.
- Izvršenje Hive upita bit će poput niza automatski generiranih mapa za smanjenje poslova.
- Hive podržava koncepte particija i spremnika za jednostavno dohvaćanje podataka kada klijent izvrši upit.
- Hive podržava prilagođene specifične UDF-ove (korisnički definirane funkcije) za čišćenje podataka, filtriranje itd. U skladu sa zahtjevima programera mogu se definirati Hive UDF-ovi.
Košnica protiv relacijskih baza podataka
Korištenjem Hivea možemo izvesti neke neobične funkcije koje se ne postižu u relacijskim bazama podataka. Za veliku količinu podataka koji su u peta-bajtovima, važno je postaviti upit i dobiti rezultate u sekundi. A Hive to radi prilično učinkovito, brzo obrađuje upite i daje rezultate za sekundu vremena.
Pogledajmo sada što čini Hive tako brzim.
Neke ključne razlike između Hive i relacijskih baza podataka su sljedeće;
Relacijske baze podataka su od “Shema na READ i Schema na Write“. Prvo izradite tablicu, a zatim unesite podatke u određenu tablicu. Na tablicama relacijske baze podataka mogu se izvoditi funkcije poput umetanja, ažuriranja i izmjena.
Košnica je "Shema samo za ČITANJE“. Dakle, funkcije poput ažuriranja, izmjena itd. ne rade s ovim. Budući da se Hive upit u tipičnom klasteru izvodi na više podatkovnih čvorova. Stoga nije moguće ažurirati i modificirati podatke na više čvorova. (Hive verzije ispod 0.13)
Također, Hive podržava "ČITAJ Mnogo PIŠI Jednom” uzorak. Što znači da nakon umetanja tablice možemo ažurirati tablicu u najnovijim Hive verzijama.
BILJEŠKA: Međutim, nova verzija Hivea dolazi s ažuriranim značajkama. Verzije Hive (Hive 0.14) dolaze s opcijama ažuriranja i brisanja kao novim značajkama
Košnica Architektura
Gornja snimka zaslona objašnjava apaš Detaljno o arhitekturi košnice
Košnica se sastoji uglavnom od 3 jezgra dijela
- Hive Klijenti
- Usluge košnica
- Hive Storage and Computing
Hive klijenti:
Hive pruža različite upravljačke programe za komunikaciju s različitim vrstama aplikacija. Za aplikacije temeljene na Thrift-u, osigurat će Thrift klijent za komunikaciju.
Za Java povezanih aplikacija, pruža JDBC upravljačke programe. Osim bilo koje vrste aplikacija koje pružaju ODBC upravljačke programe. Ovi klijenti i upravljački programi ponovno komuniciraju s Hive poslužiteljem u Hive uslugama.
Usluge košnice:
Interakcije klijenta s Hiveom mogu se izvesti putem Hive usluga. Ako klijent želi izvršiti bilo kakve operacije povezane s upitima u Hiveu, mora komunicirati putem Hive usluga.
CLI je sučelje naredbenog retka koje djeluje kao Hive usluga za DDL (Data definition Language) operacije. Svi upravljački programi komuniciraju s Hive poslužiteljem i s glavnim pokretačkim programom u Hive uslugama kao što je prikazano na gornjem dijagramu arhitekture.
Upravljački program prisutan u uslugama Hive predstavlja glavni pokretački program i komunicira svim vrstama JDBC, ODBC i drugih aplikacija specifičnih za klijenta. Vozač će obraditi te zahtjeve iz različitih aplikacija u meta pohranu i terenske sustave za daljnju obradu.
Hive Storage and Computing:
Hive usluge kao što su Meta store, File system i Job Client zauzvrat komuniciraju s Hive pohranom i izvode sljedeće radnje
- Podaci o metapodacima tablica stvorenih u Hiveu pohranjuju se u Hive „Meta storage database“.
- Rezultati upita i podaci učitani u tablice bit će pohranjeni u Hadoop klasteru na HDFS-u.
Tijek izvršenja posla:
Iz gornje snimke zaslona možemo razumjeti tijek izvršenja posla u Hive s Hadoopom
Tijek podataka u Hiveu ponaša se prema sljedećem obrascu;
- Izvršavanje upita iz korisničkog sučelja (korisničkog sučelja)
- Vozač je u interakciji s kompajlerom radi dobivanja plana. (Ovdje se plan odnosi na izvršenje upita) proces i njegovo povezano prikupljanje informacija o metapodacima
- Kompajler stvara plan za izvršenje posla. Kompajler komunicira s Meta pohranom radi dobivanja zahtjeva za metapodatke
- Meta pohrana šalje podatke o metapodacima natrag kompajleru
- Kompajler komunicira s vozačem s predloženim planom za izvršenje upita
- Vozač šalje planove izvršenja u pogon za izvršenje
- Execution Engine (EE) djeluje kao most između Hivea i Hadoopa za obradu upita. Za DFS operacije.
- EE bi prvo trebao kontaktirati Name Node, a zatim Data čvorove kako bi dobio vrijednosti pohranjene u tablicama.
- EE će dohvatiti željene zapise iz podatkovnih čvorova. Stvarni podaci tablica nalaze se samo u podatkovnom čvoru. Dok iz Name Node dohvaća samo informacije o metapodacima za upit.
- Prikuplja stvarne podatke iz podatkovnih čvorova koji se odnose na spomenuti upit
- Execution Engine (EE) dvosmjerno komunicira s Meta pohranom prisutnom u Hiveu radi izvođenja DDL (Data Definition Language) operacija. Ovdje se izvode DDL operacije poput CREATE, DROP i ALTERING tablica i baza podataka. Meta trgovina će pohraniti informacije samo o nazivu baze podataka, nazivima tablica i nazivima stupaca. Dohvatit će podatke koji se odnose na spomenuti upit.
- Execution Engine (EE) zauzvrat komunicira s Hadoop demonima kao što su Name node, Data nodes i Job Tracker kako bi izvršio upit na vrhu Hadoop datotečnog sustava
- Dohvaćanje rezultata od vozača
- Slanje rezultata u pogon za izvršenje. Nakon što se rezultati dohvate iz podatkovnih čvorova u EE, on će poslati rezultate natrag u upravljački program i u UI (front end)
Košnica Stalno u kontaktu s Hadoop datotečnim sustavom i njegovim demonima putem izvršnog mehanizma. Točkasta strelica u dijagramu tijeka posla prikazuje komunikaciju izvršnog mehanizma s Hadoop demonima.
Različiti načini Hive
Hive može raditi u dva načina ovisno o veličini podatkovnih čvorova u Hadoopu.
Ovi načini su,
- Lokalni način
- Način smanjivanja karte
Kada koristiti lokalni način rada:
- Ako je Hadoop instaliran u pseudo načinu rada s jednim podatkovnim čvorom, koristimo Hive u ovom načinu rada
- Ako je veličina podataka manja u smislu ograničenja na jedno lokalno računalo, možemo koristiti ovaj način
- Obrada će biti vrlo brza na manjim skupovima podataka koji se nalaze na lokalnom računalu
Kada koristiti način smanjenja karte:
- Ako Hadoop ima više podatkovnih čvorova i podaci se distribuiraju po različitim čvorovima, u ovom načinu rada koristimo Hive
- Radit će na velikoj količini skupova podataka i upit će se izvršavati paralelno
- Obrada velikih skupova podataka s boljom izvedbom može se postići ovim načinom
U Hiveu možemo postaviti ovo svojstvo da spomenemo koji način Hive može raditi? Prema zadanim postavkama radi u načinu rada Map Reduce, a za lokalni način možete imati sljedeću postavku.
Košnica za rad u lokalnom načinu rada postavljena
SET mapred.job.tracker=local;
Od Hive verzije 0.7 podržava način za automatsko pokretanje mapiranja poslova u lokalnom načinu rada.
Što je Hive Server2 (HS2)?
HiveServer2 (HS2) je poslužiteljsko sučelje koje obavlja sljedeće funkcije:
- Omogućuje udaljenim klijentima izvršavanje upita protiv Hivea
- Dohvaćanje rezultata navedenih upita
Od najnovije verzije ima neke napredne značajke temeljene na Thrift RPC kao što su;
- Konkurentnost s više klijenata
- Ovjera
Rezime
Hive je ETL i alat za skladištenje podataka na vrhu Hadoop ekosustava i koristi se za obradu strukturiranih i polustrukturiranih podataka.
- Hive je baza podataka prisutna u Hadoop ekosustavu koja izvodi DDL i DML operacije i pruža fleksibilan jezik upita kao što je HQL za bolje postavljanje upita i obradu podataka.
- Pruža toliko mnogo značajki u usporedbi s RDMS-om koji ima određena ograničenja.
Za korisničku specifičnu logiku koja ispunjava zahtjeve klijenata.
- Omogućuje mogućnost pisanja i postavljanja prilagođeno definiranih skripti i korisnički definiranih funkcija.
- Osim toga, nudi particije i spremnike za specifične logike pohrane.