Kaj je panj? Arhitektura & Načini

Kazalo:

Anonim

V tej vadnici boste izvedeli-

  • Kaj je panj?
  • Panjska arhitektura
  • Različni načini panja
  • Kaj je Hive Server2 (HS2)?

Kaj je panj?

Hive je orodje za skladiščenje ETL in podatkov, razvito na Hadoop Distributed File System (HDFS). Panj olajša delo za izvajanje podobnih dejavnosti

  • Kapsulacija podatkov
  • Ad-hoc poizvedbe
  • Analiza ogromnih podatkovnih nizov

Pomembne značilnosti panja

  • V Panju se najprej ustvarijo tabele in zbirke podatkov, nato pa se podatki naložijo v te tabele.
  • Panj kot podatkovno skladišče, zasnovano za upravljanje in poizvedovanje samo po strukturiranih podatkih, ki so shranjeni v tabelah.
  • Medtem ko se ukvarja s strukturiranimi podatki, Map Reduce nima funkcij optimizacije in uporabnosti, kot so UDF, Hive framework pa. Optimizacija poizvedbe se nanaša na učinkovit način izvedbe poizvedbe v smislu učinkovitosti.
  • Hiveov jezik, ki ga navdihuje SQL, ločuje uporabnika od zapletenosti programiranja Map Reduce. Za lažje učenje ponovno uporabi znane koncepte iz sveta relacijskih baz podatkov, kot so tabele, vrstice, stolpci in sheme itd.
  • Hadoopovo programiranje deluje na ploščatih datotekah. Torej, Hive lahko z uporabo imeniških struktur "razdeli" podatke za izboljšanje učinkovitosti nekaterih poizvedb.
  • Nov in pomemben sestavni del Panja, tj. Metastore, ki se uporablja za shranjevanje informacij o shemi. Ta Metastore je običajno v relacijski bazi podatkov. S Hive lahko komuniciramo z uporabo metod, kot so
    • Spletni uporabniški vmesnik
    • Vmesnik Java Database Connectivity (JDBC)
  • Večina interakcij ponavadi poteka prek vmesnika ukazne vrstice (CLI). Hive ponuja CLI za pisanje poizvedb Hive s pomočjo jezika poizvedb Hive (HQL)
  • Sintaksa HQL je na splošno podobna sintaksi SQL, ki jo pozna večina analitikov podatkov. Spodnja poizvedba vzorca prikazuje vse zapise v omenjenem imenu tabele.
    • Vzorčna poizvedba : Izberite * med
  • Panj podpira štiri formate datotek, in sicer TEXTFILE, SEQUENCEFILE, ORC in RCFILE (Record Columnar File).
  • Za shranjevanje metapodatkov za enega uporabnika Hive uporablja bazo podatkov derby, za več uporabnikov pa Metadata ali primer metapodatkov v skupni rabi, Hive uporablja MYSQL.

Za nastavitev MySQL kot baze podatkov in za shranjevanje informacij o metapodatkih preverite Vadnico "Namestitev in konfiguracija HIVE in MYSQL"

Nekaj ​​ključnih točk o panju:

  • Glavna razlika med HQL in SQL je v tem, da se poizvedba Hive izvaja v Hadoopovi infrastrukturi in ne v tradicionalni bazi podatkov.
  • Izvedba poizvedbe Hive bo podobna seriji samodejno ustvarjenih map, ki zmanjšujejo število opravil.
  • Hive podpira koncepte particij in segmentov za enostavno iskanje podatkov, ko odjemalec izvede poizvedbo.
  • Hive podpira UDF po meri (User Defined Functions) za čiščenje podatkov, filtriranje itd. V skladu z zahtevami programerjev lahko določimo UDF Hive.

Hive Vs Relacijske zbirke podatkov: -

Z uporabo Hive lahko izvajamo neko posebno funkcijo, ki je ni mogoče doseči v relacijskih zbirkah podatkov. Za ogromno količino podatkov, ki so v petabajtih, je pomembno poizvedovanje in doseganje rezultatov v nekaj sekundah. In Hive to počne zelo učinkovito, poizvedbe hitro obdela in v drugem trenutku prinese rezultate.

Poglejmo zdaj, kaj naredi Hive tako hiter.

Nekatere ključne razlike med bazami podatkov o panju in relacijami so naslednje;

Relacijske zbirke podatkov so " Shema za branje in shema za pisanje ". Najprej ustvarite tabelo, nato vstavite podatke v določeno tabelo. V tabelah relacijskih baz podatkov je mogoče izvajati funkcije, kot so vstavki, posodobitve in spremembe.

Panj je " Shema samo za branje ". Torej funkcije, kot so posodobitve, spremembe itd., S tem ne delujejo. Ker se poizvedba Hive v tipični gruči izvaja na več podatkovnih vozliščih. Zato ni mogoče posodabljati in spreminjati podatkov na več vozliščih. (Različice panja pod 0,13)

Tudi panj podpira vzorec " PREBERI MENO PIŠI enkrat ". Kar pomeni, da lahko po vstavitvi tabele tabelo posodobimo v najnovejših različicah Hive.

OPOMBA : Nova različica Hive pa ima posodobljene funkcije. Različice Hive (Hive 0.14) ponujajo možnosti posodobitve in brisanja kot nove funkcije

Panjska arhitektura

Zgornji posnetek zaslona podrobno razlaga arhitekturo Apache Hive

Panj je sestavljen predvsem iz 3 jedrnih delov

  1. Odjemalci panjev
  2. Panjske storitve
  3. Shranjevanje in računalništvo panja

Odjemalci panjev:

Hive ponuja različne gonilnike za komunikacijo z različnimi vrstami aplikacij. Za aplikacije, ki temeljijo na Thrift, bo odjemalcu Thrift zagotovil komunikacijo.

Za programe, povezane z Javo, ponuja gonilnike JDBC. Gonilniki ODBC, razen katere koli vrste aplikacij. Ti odjemalci in gonilniki v zameno spet komunicirajo s Hive strežnikom v storitvah Hive.

Panjske storitve:

Interakcije strank s Hive je mogoče izvajati s storitvami Hive. Če želi stranka v panju izvesti kakršne koli operacije, povezane s poizvedbami, mora komunicirati prek Hive Services.

CLI je vmesnik ukazne vrstice, ki deluje kot storitev Hive za operacije DDL (jezik definicije podatkov). Vsi gonilniki komunicirajo s strežnikom Hive in z glavnim gonilnikom v storitvah Hive, kot je prikazano na zgornjem diagramu arhitekture.

Gonilnik, prisoten v storitvah Hive, predstavlja glavni gonilnik in komunicira z vsemi vrstami JDBC, ODBC in drugimi specifičnimi aplikacijami odjemalca. Voznik bo te zahteve iz različnih aplikacij obdelal v meta-shrambe in terenske sisteme za nadaljnjo obdelavo.

Shranjevanje in računalništvo panja:

Storitve Hive, kot so Meta store, File system in Job Client, nato komunicirajo s Hive storage in izvajajo naslednja dejanja

  • Podatki o metapodatkih tabel, ustvarjenih v Hive, so shranjeni v Hive "Meta storage database".
  • Rezultati poizvedb in podatki, naloženi v tabelah, bodo shranjeni v gruči Hadoop na HDFS.

Tok izpuščanja delovnih mest:

Iz zgornjega posnetka zaslona lahko razumemo potek izvajanja opravil v Hive with Hadoop

Pretok podatkov v panju se obnaša po naslednjem vzorcu;

  1. Izvajanje poizvedbe iz uporabniškega vmesnika (uporabniški vmesnik)
  2. Voznik pri pridobivanju načrta komunicira s programom Compiler. (Tu se načrt nanaša na izvajanje poizvedbe) in zbiranje informacij o metapodatkih
  3. Prevajalnik ustvari načrt za izvedbo opravila. Prevajalnik komunicira s trgovino Meta za pridobitev zahteve za metapodatke
  4. Meta trgovina pošlje podatke o metapodatkih nazaj prevajalniku
  5. Prevajalnik komunicira z gonilnikom s predlaganim načrtom za izvedbo poizvedbe
  6. Voznik Pošiljanje izvedbenih načrtov v izvršilni mehanizem
  7. Execution Engine (EE) deluje kot most med Hive in Hadoop za obdelavo poizvedbe. Za operacije DFS.
  • EE naj najprej vzpostavi stik z vozliščem Ime in nato s podatkovnimi vozlišči, da dobi vrednosti, shranjene v tabelah.
  • EE bo želene zapise prevzel iz podatkovnih vozlišč. Dejanski podatki tabel se nahajajo samo v vozlišču podatkov. Medtem ko iz Name Node pridobi samo podatke o metapodatkih za poizvedbo.
  • Zbira dejanske podatke iz podatkovnih vozlišč, povezanih z omenjeno poizvedbo
  • Execution Engine (EE) komunicira dvosmerno s trgovino Meta, ki je prisotna v Hive, za izvajanje operacij DDL (jezik za določanje podatkov). Tu se opravijo operacije DDL, kot so tabele in zbirke podatkov CREATE, DROP in ALTERING. Meta store bo shranil informacije samo o imenih baz podatkov, imenih tabel in imen stolpcev. Pridobila bo podatke, povezane z omenjeno poizvedbo.
  • Execution Engine (EE) po drugi strani komunicira z demoni Hadoop, kot so vozlišče imena, podatkovna vozlišča in sledilnik opravil, da izvede poizvedbo na vrhu datotečnega sistema Hadoop
  1. Pridobivanje rezultatov iz gonilnika
  2. Pošiljanje rezultatov v izvršilni mehanizem. Ko bodo rezultati pridobljeni iz podatkovnih vozlišč v EE, bo rezultate poslal nazaj gonilniku in uporabniškemu vmesniku (sprednji del)

Hive neprekinjeno v stiku z datotečnim sistemom Hadoop in njegovimi demoni prek izvršilnega mehanizma. Črtasta puščica v diagramu poteka dela prikazuje komunikacijo izvršilnega mehanizma z demoni Hadoop.

Različni načini panja

Panj lahko deluje v dveh načinih, odvisno od velikosti podatkovnih vozlišč v Hadoopu.

Ti načini so,

  • Lokalni način
  • Način zmanjšanja zemljevida

Kdaj uporabiti lokalni način:

  • Če je Hadoop nameščen v psevdo načinu z enim podatkovnim vozliščem, v tem načinu uporabimo Hive
  • Če je velikost podatkov manjša, omejena na en lokalni stroj, lahko uporabimo ta način
  • Obdelava bo zelo hitra pri manjših naborih podatkov, prisotnih v lokalnem računalniku

Kdaj uporabiti način zmanjšanja zemljevida:

  • Če ima Hadoop več podatkovnih vozlišč in so podatki porazdeljeni po različnih vozliščih, v tem načinu uporabimo Hive
  • Izvedel se bo pri velikih količinah naborov podatkov in poizvedbe, ki se bodo izvajale vzporedno
  • S tem načinom lahko dosežemo obdelavo velikih naborov podatkov z boljšo zmogljivostjo

V panju lahko to lastnost nastavimo tako, da omenja, v katerem načinu panj lahko deluje? Privzeto deluje v načinu za zmanjšanje zemljevida, za lokalni način pa lahko imate naslednjo nastavitev.

Panj za delo v lokalnem načinu je nastavljen

SET mapred.job.tracker = lokalno;

Od različice Hive 0.7 podpira način samodejnega izvajanja opravil za zmanjševanje zemljevidov v lokalnem načinu.

Kaj je Hive Server2 (HS2)?

HiveServer2 (HS2) je strežniški vmesnik, ki opravlja naslednje funkcije:

  • Oddaljenim odjemalcem omogoča izvajanje poizvedb proti Hive
  • Pridobite rezultate omenjenih poizvedb

Od najnovejše različice ima nekaj naprednih funkcij, ki temeljijo na Thrift RPC;

  • Sočasnost več odjemalcev
  • Preverjanje pristnosti

Povzetek:

Hive je orodje za shranjevanje podatkov in shranjevanje podatkov na vrhu ekosistema Hadoop in se uporablja za obdelavo strukturiranih in polstrukturiranih podatkov.

  • Hive je zbirka podatkov, ki je prisotna v ekosistemu Hadoop in izvaja operacije DDL in DML ter zagotavlja prilagodljiv jezik poizvedb, kot je HQL, za boljše poizvedovanje in obdelavo podatkov.
  • Ponuja toliko funkcij v primerjavi z RDMS, ki ima določene omejitve.

Za uporabniško specifično logiko, ki ustreza zahtevam odjemalca.

  • Omogoča pisanje in uvajanje skriptov po meri in uporabniško določenih funkcij.
  • Poleg tega ponuja particije in vedra za specifične logike shranjevanja.