Š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

Košnica Architektura

Gornja snimka zaslona objašnjava apaš Detaljno o arhitekturi košnice

Košnica se sastoji uglavnom od 3 jezgra dijela

  1. Hive Klijenti
  2. Usluge košnica
  3. 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:

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;

  1. Izvršavanje upita iz korisničkog sučelja (korisničkog sučelja)
  2. 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
  3. Kompajler stvara plan za izvršenje posla. Kompajler komunicira s Meta pohranom radi dobivanja zahtjeva za metapodatke
  4. Meta pohrana šalje podatke o metapodacima natrag kompajleru
  5. Kompajler komunicira s vozačem s predloženim planom za izvršenje upita
  6. Vozač šalje planove izvršenja u pogon za izvršenje
  7. 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
  1. Dohvaćanje rezultata od vozača
  2. 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.