Što je košnica? Arhitektura & Načini rada

Sadržaj:

Anonim

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
  • 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

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

  1. Izvršenje upita iz korisničkog sučelja (korisničko sučelje)
  2. Vozač komunicira s Compilerom radi dobivanja plana. (Ovdje se plan odnosi na izvršavanje upita) i prikupljanje podataka o njemu povezanim metapodacima
  3. Prevoditelj kreira plan za posao koji treba izvršiti. Prevoditelj komunicira s Meta trgovinom radi dobivanja zahtjeva za metapodacima
  4. Meta trgovina šalje podatke o metapodacima natrag kompajleru
  5. Prevoditelj koji komunicira s upravljačkim programom s predloženim planom za izvršavanje upita
  6. Vozač Slanje planova izvršenja na izvršni stroj
  7. 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
  1. Dohvaćanje rezultata iz vozača
  2. 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.