Mis on taru? Architektuur ja režiimid

Mis on taru?

Hive on ETL-i ja andmehoidla tööriist, mis on välja töötatud Hadoopi hajutatud failisüsteemi (HDFS) peal. Taru teeb töö lihtsaks selliste toimingute tegemiseks nagu

  • Andmete kapseldamine
  • Ad-hoc päringud
  • Suurte andmekogumite analüüs

Taru olulised omadused

  • Tarus luuakse esmalt tabelid ja andmebaasid ning seejärel laaditakse neisse tabelitesse andmed.
  • Taru kui andmeladu, mis on loodud ainult tabelitesse salvestatud struktureeritud andmete haldamiseks ja päringute tegemiseks.
  • Struktureeritud andmetega tegelemisel ei ole rakendusel Map Reduce optimeerimis- ja kasutatavusfunktsioone, nagu UDF-id, küll aga Hive raamistikul. Päringu optimeerimine viitab jõudluse seisukohalt tõhusale päringu täitmise viisile.
  • Hive SQL-ist inspireeritud keel eraldab kasutaja Map Reduce'i programmeerimise keerukusest. See kasutab õppimise hõlbustamiseks uuesti relatsioonilise andmebaasi maailmast tuttavaid mõisteid, nagu tabelid, read, veerud ja skeemid jne.
  • Hadoopi programmeerimine töötab lamefailides. Seega saab Hive kasutada kataloogistruktuure andmete jaotamiseks, et parandada teatud päringute toimivust.
  • Hive ehk metastore uus ja oluline komponent, mida kasutatakse skeemiteabe salvestamiseks. See metastore asub tavaliselt relatsiooniandmebaasis. Saame Hive'iga suhelda, kasutades selliseid meetodeid nagu
    • Veebi GUI
    • Java Andmebaasi ühenduvuse (JDBC) liides
  • Enamik interaktsioone toimub tavaliselt käsurea liidese (CLI) kaudu. Hive pakub CLI-d Hive päringute kirjutamiseks, kasutades Hive Query Language (HQL)
  • Üldiselt on HQL-i süntaks sarnane SQL süntaks, mida enamik andmeanalüütikuid tunneb. Allolev näidispäring kuvab kõik nimetatud tabeli nimes olevad kirjed.
    • Näidispäring : valige * hulgast
  • Taru toetab nelja failivormingut TEKSTIFIIL, SEQUENCEFILE, ORC ja RCFILE (Salvesta veerufail).
  • Ühe kasutaja metaandmete salvestamiseks kasutab Hive Derby andmebaasi ja mitme kasutaja metaandmete või jagatud metaandmete juhtumi jaoks kasutab Hive MYSQL-i.

Seadistamise jaoks MySQL andmebaasina ja metaandmete salvestamiseks kontrollige õpetust "HIVE ja MYSQL-i installimine ja konfigureerimine"

Mõned põhipunktid Taru kohta:

  • Peamine erinevus HQL-i ja SQL-i vahel on see, et Hive'i päring käivitatakse Hadoopi infrastruktuuris, mitte traditsioonilises andmebaasis.
  • Hive päringu täitmine on nagu automaatselt genereeritud kaardi vähendamise tööde seeria.
  • Taru toetab sektsioonide ja ämbrite kontseptsioone, mis võimaldavad kliendi päringu täitmisel hõlpsalt andmeid hankida.
  • Hive toetab kohandatud spetsiifilisi UDF-i (User Defined Functions) andmete puhastamiseks, filtreerimiseks jne. Vastavalt programmeerijate nõudmistele saab defineerida Hive UDF-e.

Taru vs relatsiooniandmebaasid

Hive'i kasutades saame täita mõningaid omapäraseid funktsioone, mida relatsiooniandmebaasides ei saavutata. Suure hulga petabaitides sisalduva andmehulga jaoks on oluline päringute tegemine ja tulemuste saamine sekunditega. Ja Hive teeb seda üsna tõhusalt, töötleb päringuid kiiresti ja annab tulemusi sekundiga.

Vaatame nüüd, mis teeb Hive nii kiireks.

Mõned peamised erinevused Hive'i ja relatsiooniandmebaaside vahel on järgmised;

Relatsiooniandmebaasid on "Skeem lugemisel ja skeem kirjutamisel“. Esmalt looge tabel, seejärel sisestage andmed konkreetsesse tabelisse. Relatsiooniandmebaasi tabelites saab teostada selliseid funktsioone nagu lisamised, värskendused ja muudatused.

Taru on "Skeem ainult LUGEMISEKS“. Seega ei tööta sellised funktsioonid nagu värskendus, muudatused jne. Kuna Hive päring tüüpilises klastris töötab mitmes andmesõlmes. Seega ei ole võimalik mitme sõlme andmeid värskendada ja muuta. (Taru versioonid alla 0.13)

Samuti toetab HiveLUGEGE Paljud KIRJUTAVAD korra” muster. Mis tähendab, et pärast tabeli sisestamist saame tabelit Hive'i uusimates versioonides värskendada.

MÄRKUSED: Hive'i uus versioon sisaldab aga värskendatud funktsioone. Taru versioonid (Hive 0.14) pakuvad uute funktsioonidena värskendus- ja kustutamisvalikuid

Mesilaspere Architektuur

Mesilaspere Architektuur

Ülaltoodud ekraanipilt selgitab Apache Taru arhitektuur üksikasjalikult

Taru koosneb peamiselt 3 põhiosast

  1. Taru kliendid
  2. Taruteenused
  3. Taru ladustamine ja andmetöötlus

Taru kliendid:

Hive pakub erinevaid draivereid erinevat tüüpi rakendustega suhtlemiseks. Thrift-põhiste rakenduste jaoks pakub see suhtluseks Thrift-kliendi.

eest Java seotud rakendused, pakub see JDBC draivereid. Muud kui mis tahes tüüpi rakendused pakuvad ODBC draivereid. Need kliendid ja draiverid suhtlevad Hive teenustes taas Hive serveriga.

Taruteenused:

Klientide suhtlemist Hive'iga saab teha Hive'i teenuste kaudu. Kui klient soovib Hive'is päringuga seotud toiminguid teha, peab ta suhtlema Hive'i teenuste kaudu.

CLI on käsurea liides, mis toimib Hive teenusena DDL-i (Data Definition Language) toimingute jaoks. Kõik draiverid suhtlevad Hive'i serveriga ja Hive'i teenuste peamise draiveriga, nagu on näidatud ülaltoodud arhitektuuriskeemil.

Taru teenustes olev draiver esindab peamist draiverit ja suhtleb igat tüüpi JDBC, ODBC ja muude kliendispetsiifiliste rakendustega. Draiver töötleb need päringud erinevatest rakendustest edasiseks töötlemiseks metasalve ja välisüsteemidesse.

Taru salvestamine ja andmetöötlus:

Hive'i teenused, nagu metapood, failisüsteem ja tööklient, suhtlevad omakorda Hive'i salvestusruumiga ja teostavad järgmisi toiminguid

  • Hive'is loodud tabelite metaandmete teave salvestatakse Hive'i metasalvestuse andmebaasi.
  • Päringutulemused ja tabelitesse laaditud andmed salvestatakse HDFS-i Hadoopi klastris.

Tööde täitmise voog:

Töö teostamise voog

Ülaltoodud ekraanipildist saame aru Hadoopiga Hive'i töö täitmise voost

Hive'i andmevoog käitub järgmise mustri järgi;

  1. Päringu täitmine kasutajaliidesest (kasutajaliides)
  2. Juht suhtleb plaani hankimiseks kompilaatoriga. (Siin viitab plaan päringu täitmisele) protsessi ja sellega seotud metaandmete teabe kogumist
  3. Kompilaator koostab teostatava töö plaani. Metapoega suhtlev kompilaator metaandmete päringu saamiseks
  4. Meta pood saadab metaandmete teabe tagasi kompilaatorisse
  5. Kompilaator suhtleb draiveriga päringu täitmiseks pakutud plaaniga
  6. Juht saadab täitmisplaanid täitmismootorisse
  7. Täitmismootor (EE) toimib päringu töötlemiseks sillana Hive'i ja Hadoopi vahel. DFS-i toimingute jaoks.
  • EE peaks tabelitesse salvestatud väärtuste saamiseks esmalt ühendust võtma Name Node'iga ja seejärel andmesõlmedega.
  • EE toob soovitud kirjed andmesõlmedest. Tabelite tegelikud andmed asuvad ainult andmesõlmes. Nimesõlmest hangib see ainult päringu metaandmete teabe.
  • See kogub tegelikke andmeid nimetatud päringuga seotud andmesõlmedest
  • Täitmismootor (EE) suhtleb kahesuunaliselt tarus oleva metapoega, et teha DDL-i (Data Definition Language) toiminguid. Siin tehakse DDL-i toiminguid, nagu tabelite ja andmebaaside CREATE, DROP ja ALTERING. Metapood salvestab teavet ainult andmebaasi nime, tabelinimede ja veergude nimede kohta. See hangib mainitud päringuga seotud andmed.
  • Täitmismootor (EE) suhtleb omakorda Hadoopi deemonitega, nagu nimesõlm, andmesõlmed ja tööjälgija, et täita päring Hadoopi failisüsteemi peal
  1. Tulemuste toomine juhilt
  2. Tulemuste saatmine täitmismootorisse. Kui tulemused on toodud andmesõlmedest EE-sse, saadab see tulemused tagasi draiverile ja kasutajaliidesele (esiosa)

Taru Pidevalt ühenduses Hadoopi failisüsteemi ja selle deemonitega täitmismootori kaudu. Töö vooskeemi punktiirnool näitab täitmismootori sidet Hadoopi deemonitega.

Taru erinevad režiimid

Taru võib töötada kahes režiimis sõltuvalt Hadoopi andmesõlmede suurusest.

Need režiimid on

  • Kohalik režiim
  • Kaardi vähendamise režiim

Millal kohalikku režiimi kasutada?

  • Kui Hadoop on installitud pseudorežiimis ühe andmesõlmega, kasutame selles režiimis Hive'i
  • Kui andmemaht on piiratud ühe kohaliku masinaga, saame seda režiimi kasutada
  • Kohalikus masinas olevate väiksemate andmekogumite töötlemine on väga kiire

Millal kasutada kaardi vähendamise režiimi?

  • Kui Hadoopil on mitu andmesõlme ja andmed jaotatakse erinevate sõlmede vahel, kasutame selles režiimis Hive'i
  • See toimib suure hulga andmekogumite ja päringutega, mida täidetakse paralleelselt
  • Selle režiimi kaudu on võimalik töödelda suuri andmekogumeid parema jõudlusega

Hive'is saame määrata selle atribuudi mainima, millises režiimis Hive töötada saab? Vaikimisi töötab see režiimis Map Reduce ja kohaliku režiimi jaoks võib olla järgmine säte.

Taru kohalikus režiimis tööle seatud

SET mapred.job.tracker=local;

Alates Hive versioonist 0.7 toetab see režiimi, mis käivitab kaardivähendustööd automaatselt kohalikus režiimis.

Mis on Hive Server2 (HS2)?

HiveServer2 (HS2) on serveriliides, mis täidab järgmisi funktsioone:

  • Võimaldab kaugklientidel täita päringuid Hive'i vastu
  • Tooge mainitud päringute tulemused

Alates uusimast versioonist on sellel mõned täiustatud funktsioonid, mis põhinevad Thrift RPC-l nagu;

  • Mitme kliendi samaaegsus
  • Autentimine

kokkuvõte

Hive on Hadoopi ökosüsteemi peal olev ETL-i ja andmelao tööriist, mida kasutatakse struktureeritud ja poolstruktureeritud andmete töötlemiseks.

  • Hive on Hadoopi ökosüsteemis olev andmebaas, mis teostab DDL-i ja DML-i toiminguid ning pakub paindlikku päringukeelt, näiteks HQL-i, et paremini päringuid teha ja andmetöötlust töödelda.
  • Võrreldes RDMS-iga pakub see nii palju funktsioone, millel on teatud piirangud.

Kasutajaspetsiifilise loogika jaoks, mis vastaks kliendi nõudmistele.

  • See annab võimaluse kirjutada ja juurutada kohandatud defineeritud skripte ja kasutaja määratud funktsioone.
  • Lisaks pakub see partitsioonid ja ämbrid talletuspõhiste loogikate jaoks.

Võta see postitus kokku järgmiselt: