U ovom vodiču naučit ćete-
- Što je košnica?
- Arhitektura košnica
- Različiti načini košnice
- Što je Hive Server2 (HS2)?
Što je košnica?
Hive je alat za skladištenje ETL-a i podataka razvijen na vrhu distribuiranog datotečnog sustava Hadoop (HDFS). Košnica olakšava posao za izvođenje operacija poput
- Inkapsulacija podataka
- Ad-hoc upiti
- Analiza ogromnih skupova podataka
Važne karakteristike košnice
- U košnici 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 ispitivanje samo strukturiranih podataka koji su pohranjeni u tablicama.
- Dok se bavi strukturiranim podacima, Map Reduce nema značajke optimizacije i upotrebljivosti poput UDF-ova, ali Hive framework to ima. Optimizacija upita odnosi se na učinkovit način izvršavanja upita u smislu izvedbe.
- Hiveov jezik nadahnut SQL-om odvaja korisnika od složenosti programiranja Map Reduce. 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 radi poboljšanja izvedbe na određenim upitima.
- Nova i važna komponenta košnice, tj. Metastore koja se koristi za pohranu podataka o shemi. Ova Metastore obično se nalazi u relacijskoj bazi podataka. S Hive-om možemo komunicirati koristeći se metodama poput
- Web GUI
- Sučelje Java Database Connectivity (JDBC)
- Većina interakcija obično se odvija preko sučelja naredbenog retka (CLI). Hive pruža CLI za pisanje upita o košnici koristeći Hive Query Language (HQL)
- Općenito, HQL sintaksa slična je sintaksi SQL koja je poznata većini analitičara podataka. Upit za uzorak u nastavku prikazuje sve zapise prisutne u spomenutom nazivu tablice.
- Uzorak upita : Odaberite * iz
- Uzorak upita : Odaberite * iz
- Hive podržava četiri formata datoteka, a to su TEXTFILE, SEQUENCEFILE, ORC i RCFILE (Datoteka stupca snimanja).
- Za pohranu metapodataka za jednog korisnika, Hive koristi bazu podataka derbija, a za više korisnika Metapodatke ili zajednički slučaj metapodataka Hive koristi MYSQL.
Za postavljanje MySQL-a kao baze podataka i za pohranu podataka o meta-podacima provjerite Vodič "Instalacija i konfiguracija HIVE-a i MYSQL-a"
Neke ključne točke o košnici:
- Glavna razlika između HQL-a i SQL-a je u tome što se upit Hive izvršava na Hadoopovoj infrastrukturi, a ne na tradicionalnoj bazi podataka.
- Izvršenje upita za košnicu bit će poput niza automatski generiranih poslova koji smanjuju mape.
- Hive podržava koncepte particija i segmenata za jednostavno dohvaćanje podataka kada klijent izvrši upit.
- Hive podržava prilagođene UDF (korisnički definirane funkcije) za čišćenje podataka, filtriranje itd. Prema zahtjevima programera može se definirati Hive UDF.
Košnice protiv relacijskih baza podataka: -
Korištenjem Hive-a možemo izvršiti neke posebne funkcije koje nisu postignute u relacijskim bazama podataka. Za ogromnu količinu podataka u peta-bajtovima važno je postavljanje upita i dobivanje rezultata u sekundi. A Hive to čini vrlo učinkovito, brzo obrađuje upite i daje rezultate u sekundi.
Pogledajmo sada što čini košnicu tako brzom.
Neke ključne razlike između košnica i relacijskih baza podataka su sljedeće;
Relacijske baze podataka su " Shema za čitanje i Shema za pisanje ". Prvo stvorite tablicu, a zatim umetnite podatke u određenu tablicu. Na relacijskim tablicama baze podataka mogu se izvoditi funkcije poput Umetanja, Ažuriranja i Izmjene.
Košnica je " Shema samo za čitanje ". Dakle, funkcije poput ažuriranja, preinaka itd. Ne rade s ovim. Budući da se upit Hive u tipičnom klasteru izvodi na više Čvorova podataka. Dakle, nije moguće ažurirati i modificirati podatke na više čvorova. (Verzije košnica ispod 0,13)
Također, košnica podržava uzorak " PROČITAJ VIŠE NAPIŠI jednom ". Što znači da nakon umetanja tablice možemo ažurirati tablicu u najnovijim verzijama Hivea.
NAPOMENA : Međutim, nova verzija Hive-a dolazi s ažuriranim značajkama. Verzije Hive (Hive 0.14) nude opcije Ažuriranje i Brisanje kao nove značajke
Arhitektura košnica
Gornja snimka zaslona detaljno objašnjava arhitekturu Apache Hive
Košnica se sastoji uglavnom od 3 temeljna dijela
- Klijenti košnice
- Usluge košnica
- Pohrana i računanje košnica
Klijenti košnica:
Hive nudi različite pokretače za komunikaciju s različitim vrstama aplikacija. Za Thrift aplikacije, pružit će Thrift klijentu za komunikaciju.
Za programe povezane s Javom nudi JDBC upravljačke programe. Osim bilo koje vrste aplikacija koje nude ODBC upravljačke programe. Ovi klijenti i upravljački programi zauzvrat opet komuniciraju s Hive poslužiteljem u Hive servisima.
Usluge košnica:
Interakcije klijenta s Hive mogu se izvoditi putem Hive Services. Ako klijent želi izvesti bilo kakve operacije povezane s upitom u Hiveu, mora komunicirati putem Hive Services.
CLI je sučelje naredbenog retka djeluje kao usluga košnice za operacije DDL (jezik definicije podataka). Svi upravljački programi komuniciraju s Hive poslužiteljem i glavnim pokretačkim programom u Hive servisima, kao što je prikazano na gornjem dijagramu arhitekture.
Upravljački program prisutan u uslugama Hive predstavlja glavni pokretač i on komunicira sa svim vrstama JDBC, ODBC i drugim specifičnim aplikacijama klijenta. Vozač će obrađivati one zahtjeve različitih aplikacija u meta store i field sustave za daljnju obradu.
Pohrana i računanje košnica:
Usluge košnica poput Meta trgovine, Datotečnog sustava i Klijenta posla zauzvrat komuniciraju s pohranom Hive i izvršavaju sljedeće radnje
- Podaci o metapodacima tablica kreiranih u Hiveu pohranjuju se u Hive "Meta baza podataka za pohranu".
- Rezultati upita i podaci učitani u tablicama pohranit će se u Hadoop klasteru na HDFS-u.
Tok izlučivanja poslova:
Iz gornjeg snimka zaslona možemo razumjeti tijek izvršavanja posla u Hiveu s Hadoop-om
Tok podataka u košnici ponaša se na sljedeći način;
- Izvršenje upita iz korisničkog sučelja (korisničko sučelje)
- Vozač komunicira s Compilerom radi dobivanja plana. (Ovdje se plan odnosi na izvršavanje upita) i prikupljanje podataka o njemu povezanim metapodacima
- Prevoditelj kreira plan za posao koji treba izvršiti. Prevoditelj komunicira s Meta trgovinom radi dobivanja zahtjeva za metapodacima
- Meta trgovina šalje podatke o metapodacima natrag kompajleru
- Prevoditelj koji komunicira s upravljačkim programom s predloženim planom za izvršavanje upita
- Vozač Slanje planova izvršenja na izvršni stroj
- Execution Engine (EE) djeluje kao most između Hivea i Hadoopa za obradu upita. Za DFS operacije.
- EE bi prvo trebao kontaktirati čvor imena, a zatim čvorove podataka kako bi dobio vrijednosti pohranjene u tablicama.
- EE će dohvatiti željene zapise iz podatkovnih čvorova. Stvarni podaci tablica nalaze se samo u čvoru podataka. Iako iz Name Node dohvaća samo podatke o metapodacima za upit.
- Prikuplja stvarne podatke iz podatkovnih čvorova povezanih sa spomenutim upitom
- Izvršni mehanizam (EE) komunicira dvosmjerno s Meta trgovinom prisutnom u Hiveu radi izvođenja DDL (Data Definition Language) operacija. Ovdje se obavljaju DDL operacije poput CREATE, DROP i ALTERING tablica i baza podataka. Meta trgovina pohranit će informacije samo o imenu baze podataka, imenima tablica i imenima stupaca. Dohvatit će podatke koji se odnose na spomenuti upit.
- Izvršni mehanizam (EE) zauzvrat komunicira s Hadoop demonima kao što su čvor imena, čvorovi podataka i alat za praćenje poslova radi izvršavanja upita na vrhu datotečnog sustava Hadoop
- Dohvaćanje rezultata iz vozača
- Slanje rezultata izvršnom stroju. Jednom kada se rezultati preuzmu s podatkovnih čvorova na EE, vratit će rezultate natrag vozaču i korisničkom sučelju (prednji kraj)
Hive kontinuirano u kontaktu s datotečnim sustavom Hadoop i njegovim demonima putem izvršnog mehanizma. Točkasta strelica na dijagramu tijeka posla prikazuje komunikaciju izvršnog stroja s Hadoop demonima.
Različiti načini košnice
Košnica može raditi u dva načina, ovisno o veličini podatkovnih čvorova u Hadoopu.
Ovi načini su,
- Lokalni način
- Način smanjenja karte
Kada koristiti lokalni način:
- Ako je Hadoop instaliran u pseudo načinu rada s jednim podatkovnim čvorom, u tom načinu koristimo Hive
- Ako je veličina podataka manja u smislu ograničenja na jedan lokalni stroj, možemo koristiti ovaj način
- Obrada će biti vrlo brza na manjim skupovima podataka prisutnim u lokalnom stroju
Kada koristiti način smanjenja karte:
- Ako Hadoop ima više čvorova podataka, a podaci su raspoređeni po različitim čvorovima, koristimo Hive u ovom načinu rada
- Izvest će se na velikoj količini podataka i upitu koji će se izvršavati paralelno
- Kroz ovaj način rada može se postići obrada velikih skupova podataka s boljim performansama
U Hiveu možemo postaviti ovo svojstvo da spominje koji način Hive može raditi? Prema zadanim postavkama radi u načinu smanjenja karte, a za lokalni način možete imati sljedeću postavku.
Postavljena košnica za rad u lokalnom načinu rada
SET mapred.job.tracker = lokalno;
Od verzije Hive 0.7 podržava način automatskog pokretanja smanjenja poslova u lokalnom načinu.
Š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 Hive-a
- Dohvatite rezultate spomenutih upita
Od najnovije verzije ima neke napredne značajke zasnovane na Thrift RPC poput;
- Istodobnost više klijenata
- Ovjera
Sažetak:
Hive je ETL i alat za skladištenje podataka na vrhu ekosustava Hadoop 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 značajki u odnosu na RDMS koji ima određena ograničenja.
Za korisničku logiku koja udovoljava zahtjevima klijenta.
- Pruža mogućnost pisanja i postavljanja prilagođenih skripti i korisnički definiranih funkcija.
- Uz to, nudi particije i segmente za specifične logike pohrane.