Šioje pamokoje sužinosite
- Kas yra avilys?
- Avilio architektūra
- Skirtingi avilio būdai
- Kas yra „Hive Server2“ (HS2)?
Kas yra avilys?
„Hive“ yra ETL ir duomenų saugojimo įrankis, sukurtas „Hadoop Distributed File System“ (HDFS) viršuje. Avilys palengvina darbą atliekant panašias operacijas
- Duomenų kaupimas
- Ad-hoc užklausos
- Didžiulių duomenų rinkinių analizė
Svarbios avilio savybės
- „Hive“ programoje pirmiausia sukuriamos lentelės ir duomenų bazės, o tada į šias lenteles įkeliami duomenys.
- „Hive“ kaip duomenų saugykla, skirta valdyti ir pateikti užklausas tik struktūriniams duomenims, kurie saugomi lentelėse.
- Tvarkydamas struktūrinius duomenis, „Map Reduce“ neturi optimizavimo ir naudojimo funkcijų, tokių kaip UDF, tačiau „Hive“ sistema. Užklausos optimizavimas reiškia efektyvų užklausos vykdymo būdą našumo požiūriu.
- „Hive“ SQL įkvėpta kalba atskiria vartotoją nuo „Map Reduce“ programavimo sudėtingumo. Kad būtų lengviau mokytis, pakartotinai naudojamos žinomos sąvokos iš reliacinių duomenų bazių pasaulio, tokios kaip lentelės, eilutės, stulpeliai, schemos ir kt.
- „Hadoop“ programavimas veikia plokščiuose failuose. Taigi „Hive“ gali naudoti katalogų struktūras duomenims „skaidyti“, kad pagerintų tam tikrų užklausų našumą.
- Naujas ir svarbus „Hive“ komponentas, ty „Metastore“, naudojamas schemos informacijai saugoti. Šis „Metastore“ parduotuvė paprastai yra reliacinėje duomenų bazėje. Mes galime bendrauti su aviliu naudodami tokius metodus kaip
- Žiniatinklio GUI
- „Java Database Connectivity“ (JDBC) sąsaja
- Dažniausiai sąveika vyksta per komandinės eilutės sąsają (CLI). „Hive“ teikia CLI, kad būtų galima rašyti „Hive“ užklausas naudojant „Hive Query Language“ (HQL).
- Paprastai HQL sintaksė yra panaši į SQL sintaksę, kurią žino dauguma duomenų analitikų. Žemiau pateiktoje užklausos pavyzdyje rodomi visi įrašai, esantys minėtame lentelės pavadinime.
- Užklausos pavyzdys :
pasirinkite *
- Užklausos pavyzdys :
- „Hive“ palaiko keturis failų formatus: TEXTFILE, SEQUENCEFILE, ORC ir RCFILE (įrašo stulpelio failas).
- Vieno vartotojo metaduomenų saugojimui „Hive“ naudoja „derby“ duomenų bazę, o kelių naudotojų metaduomenų arba bendrų metaduomenų atveju „Hive“ naudoja „MYSQL“.
Norėdami nustatyti „MySQL“ kaip duomenų bazę ir saugoti metaduomenų informaciją, patikrinkite pamoką „HIVE ir MYSQL diegimas ir konfigūravimas“
Keletas pagrindinių dalykų apie avilį:
- Pagrindinis skirtumas tarp HQL ir SQL yra tas, kad „Hive“ užklausa vykdoma Hadoopo infrastruktūroje, o ne tradicinėje duomenų bazėje.
- „Hive“ užklausos vykdymas bus panašus į automatiškai sugeneruotų žemėlapių, mažinančių darbo vietas, serijas.
- „Hive“ palaiko skaidinių ir segmentų koncepcijas, kad būtų lengva gauti duomenis, kai klientas vykdo užklausą.
- „Hive“ palaiko pasirinktines specifines UDF (vartotojo apibrėžtas funkcijas), skirtas duomenims valyti, filtruoti ir kt. Pagal programuotojų reikalavimus galima apibrėžti „Hive“ UDF.
„Hive Vs“ santykių duomenų bazės: -
Naudodami „Hive“ galime atlikti tam tikrą savitą funkcionalumą, kuris nėra pasiekiamas „Relational Databases“. Dideliam duomenų kiekiui, kuris yra beta baitais, svarbu pateikti užklausą ir gauti rezultatus per kelias sekundes. „Hive“ tai daro gana efektyviai, greitai apdoroja užklausas ir duoda rezultatų per sekundę.
Pažiūrėkime dabar, kas daro avilį tokį greitą.
Kai kurie pagrindiniai „Hive“ ir reliacinių duomenų bazių skirtumai yra šie;
Reliacinės duomenų bazės yra „ Schema„ READ “ir„ Schema on Write “. Pirmiausia sukurkite lentelę, tada įterpkite duomenis į konkrečią lentelę. Reliacinių duomenų bazių lentelėse galima atlikti tokias funkcijas kaip Įterpimai, Atnaujinimai ir Modifikacijos.
Avilys yra „ Schema tik skaityti “. Taigi, tokios funkcijos kaip atnaujinimas, modifikacijos ir pan. Kadangi „Hive“ užklausa tipiniame klasteryje veikia keliuose duomenų mazguose. Taigi neįmanoma atnaujinti ir modifikuoti kelių mazgų duomenų. („Hive“ versijos žemiau 0,13)
Be to, „Hive“ palaiko „ READ READ WRITE Once “ modelį. Tai reiškia, kad įterpę lentelę galime atnaujinti lentelę naujausiose „Hive“ versijose.
PASTABA : Tačiau naujoje „Hive“ versijoje yra atnaujintos funkcijos. „Hive“ versijose („Hive 0.14“) pateikiamos „Update“ ir „Delete“ parinktys kaip naujos funkcijos
Avilio architektūra
Pirmiau pateiktoje ekrano kopijoje išsamiai paaiškinta „Apache Hive“ architektūra
Avilį sudaro daugiausia 3 pagrindinės dalys
- Avilio klientai
- Avilio paslaugos
- Avilio saugojimas ir skaičiavimas
Avilio klientai:
„Hive“ teikia skirtingus tvarkykles bendravimui su skirtingo tipo programomis. Taikant „Thrift“ programas, „Thrift“ klientas teiks ryšį.
Su „Java“ susijusioms programoms ji teikia JDBC tvarkykles. ODBC tvarkykles, išskyrus bet kokio tipo programas. Šie klientai ir tvarkyklės savo ruožtu vėl bendrauja su „Hive“ serveriu „Hive“ paslaugose.
Avilio paslaugos:
Kliento sąveika su „Hive“ gali būti vykdoma per „Hive Services“. Jei klientas nori atlikti bet kokias su užklausa susijusias operacijas avilyje, jis turi bendrauti per avilio paslaugas.
CLI yra komandinės eilutės sąsaja, veikianti kaip „Hive“ paslauga atliekant DDL (duomenų apibrėžimo kalba) operacijas. Visi tvarkyklės bendrauja su „Hive“ serveriu ir su pagrindine „Hive“ paslaugų tvarkykle, kaip parodyta aukščiau esančioje architektūros schemoje.
„Hive“ paslaugose esantis vairuotojas yra pagrindinis vairuotojas ir jis perduoda visų tipų JDBC, ODBC ir kitas specifines kliento programas. Tvarkyklė tvarkys tuos prašymus iš skirtingų programų į meta parduotuvės ir lauko sistemas tolesniam apdorojimui.
Avilio saugojimas ir skaičiavimas:
Avilio paslaugos, tokios kaip „Meta“ parduotuvė, failų sistema ir „Job Client“, savo ruožtu bendrauja su „Hive“ saugykla ir atlieka šiuos veiksmus
- Avilyje sukurtų lentelių metaduomenų informacija saugoma avilio „Meta storage database“.
- Užklausų rezultatai ir lentelėse įkelti duomenys bus saugomi „Hadoop“ grupėje, esančioje HDFS.
Darbo vykdymo srautas:
Iš pirmiau pateikto ekrano mes galime suprasti darbo vykdymo srautą avilyje su Hadoop
Duomenų srautas „Hive“ veikia tokiu modeliu;
- Užklausos vykdymas iš vartotojo sąsajos (vartotojo sąsaja)
- Vairuotojas bendrauja su kompiliatoriumi, kad gautų planą. (Čia planas nurodo užklausos vykdymą) procesą ir su juo susijusį metaduomenų informacijos rinkimą
- Kompiliatorius sukuria vykdomo darbo planą. Kompiliatorius bendrauja su „Meta“ parduotuve, kad gautų metaduomenų užklausą
- Meta parduotuvė siunčia metaduomenų informaciją atgal į kompiliatorių
- Kompiliatorius bendrauja su tvarkykle su siūlomu planu vykdyti užklausą
- Vairuotojas Vykdymo planus siunčia vykdymo varikliui
- „Execution Engine“ (EE) veikia kaip tiltas tarp „Hive“ ir „Hadoop“, kad apdorotų užklausą. DFS operacijoms.
- EE pirmiausia turėtų susisiekti su „Name Node“, tada su „Data“ mazgais, kad gautų lentelėse saugomas vertes.
- EE ketina gauti norimus įrašus iš duomenų mazgų. Faktiniai lentelių duomenys yra tik duomenų mazge. Iš „Name Node“ jis gauna tik užklausos metaduomenų informaciją.
- Jis renka faktinius duomenis iš duomenų mazgų, susijusių su minėta užklausa
- „Execution Engine“ (EE) dvipusiai bendrauja su avilyje esančia „Meta“ parduotuve, kad galėtų atlikti DDL (duomenų apibrėžimo kalbos) operacijas. Čia atliekamos DDL operacijos, tokios kaip CREATE, DROP ir ALTERING lentelės ir duomenų bazės. Meta parduotuvėje bus saugoma informacija tik apie duomenų bazių pavadinimus, lentelių pavadinimus ir stulpelių pavadinimus. Jis gaus duomenis, susijusius su minėta užklausa.
- „Execution Engine“ (EE) savo ruožtu bendrauja su „Hadoop“ demonais, tokiais kaip „Name node“, „Data mazgai“ ir „job tracker“, kad vykdytų užklausą „Hadoop“ failų sistemos viršuje.
- Gaunami rezultatai iš tvarkyklės
- Rezultatų siuntimas vykdymo varikliui. Kai rezultatai bus gauti iš duomenų mazgų į EE, rezultatai bus nusiųsti atgal į tvarkyklę ir vartotojo sąsają (priekinę dalį)
Avilys per „Execution“ variklį nuolat liečiasi su „Hadoop“ failų sistema ir jos demonais. Punktyrinė rodyklė darbo srauto diagramoje rodo „Execution“ variklio ryšį su Hadoopo demonais.
Skirtingi avilio būdai
„Hive“ gali veikti dviem režimais, priklausomai nuo „Hadoop“ duomenų mazgų dydžio.
Šie režimai yra:
- Vietos režimas
- Žemėlapio sumažinimo režimas
Kada naudoti vietinį režimą:
- Jei „Hadoop“ įdiegtas pseudo režimu, turint vieną duomenų mazgą, šiame režime naudojame „Hive“
- Jei duomenų dydis yra mažesnis, atsižvelgiant tik į vieną vietinę mašiną, galime naudoti šį režimą
- Mažesnių duomenų rinkinių, esančių vietiniame kompiuteryje, apdorojimas bus labai greitas
Kada naudoti žemėlapio sumažinimo režimą:
- Jei „Hadoop“ turi kelis duomenų mazgus ir duomenys paskirstomi skirtingiems mazgams, šiame režime naudojame „Hive“
- Tai atliks daug duomenų rinkinių ir užklausų, kurios bus vykdomos lygiagrečiai
- Šiuo režimu galima apdoroti didelius duomenų rinkinius, kurių našumas yra geresnis
„Hive“ galime nustatyti šią ypatybę paminėti, kuris režimas gali veikti? Pagal numatytuosius nustatymus jis veikia žemėlapio mažinimo režimu, o vietiniam režimui galite nustatyti šiuos nustatymus.
Avilys dirbti vietiniu režimu
SET mapred.job.tracker = vietinis;
Nuo „Hive“ versijos 0.7 ji palaiko režimą, leidžiantį automatiškai sumažinti žemėlapių skaičių vietiniame režime.
Kas yra „Hive Server2“ (HS2)?
„HiveServer2“ (HS2) yra serverio sąsaja, atliekanti šias funkcijas:
- Leidžia nuotoliniams klientams vykdyti užklausas prieš „Hive“
- Gaukite minėtų užklausų rezultatus
Nuo naujausios versijos jis turi keletą pažangių funkcijų, pagrįstų „Thrift“ RPC, pvz .;
- Kelių klientų sutapimas
- Autentifikavimas
Santrauka:
„Hive“ yra „Hadoop“ ekosistemos viršuje esantis ETL ir duomenų saugyklos įrankis, naudojamas struktūriniams ir pusiau struktūriniams duomenims apdoroti.
- „Hive“ yra duomenų bazė, esanti „Hadoop“ ekosistemoje, atliekanti DDL ir DML operacijas. Ji teikia lanksčią užklausų kalbą, pvz., HQL, kad būtų galima geriau pateikti užklausas ir apdoroti duomenis.
- Jis suteikia tiek daug funkcijų, palyginti su RDMS, kuris turi tam tikrus apribojimus.
Kad vartotojo logika atitiktų kliento reikalavimus.
- Tai suteikia galimybę rašyti ir įdiegti pasirinktinius scenarijus ir vartotojo nustatytas funkcijas.
- Be to, jame pateikiamos pertvaros ir segmentai, skirti saugoti specifinę logiką.