„Hive“ yra plačiai naudojamas „Big Data Analytics“ įrankis versle ir tai puiki vieta pradėti, jei „Big Data“ dar nesate pirmą kartą naudojęsis. Šioje „Apache Hive“ pamokoje aprašomi „Apache Hive“ pagrindai, kodėl avilys reikalingas, jo ypatybės ir visa kita, ką turėtumėte žinoti.
Pirmiausia supraskime „Hadoop“ sistemą, kuria remiasi „Apache Hive“.
Apache Hadoopas
„Apache Hadoop“ yra nemokama ir atviro kodo platforma, skirta saugoti ir apdoroti didelius duomenų rinkinius, kurių dydis svyruoja nuo gigabaitų iki petabaitų. „Hadoop“ leidžia sugrupuoti daugybę kompiuterių, kad būtų galima lygiagrečiai analizuoti didžiulius duomenų rinkinius, o ne reikalauti vieno didelio kompiuterio duomenims saugoti ir analizuoti.
„MapReduce“ ir „Hadoop Distributed File System“ yra du komponentai:
- „MapReduce“ – „MapReduce“ yra lygiagretus programavimo metodas, skirtas tvarkyti didžiulius kiekius organizuotų, pusiau struktūrizuotų ir nestruktūrizuotų prekių aparatinės įrangos grupių duomenų.
- HDFS – HDFS („Hadoop Distributed File System“) yra „Hadoop“ sistemos komponentas, kuriame saugomi ir apdorojami duomenys. Tai gedimams atspari failų sistema, kuri veikia standartine aparatūra
Įvairūs „Hadoop“ ekosistemos subprojektai (įrankiai), įskaitant „Sqoop“, „Pig“ ir „Hive“, naudojami „Hadoop“ moduliams padėti.
- Avilys – „Hive“ yra sistema, skirta rašyti SQL stiliaus scenarijus, atliekančius „MapReduce“ skaičiavimus.
- kiaulė – Pig yra procedūrinė programavimo kalba, kurią galima naudoti kuriant MapReduce procesų scenarijų.
- Sqoop – „Sqoop“ yra įrankis duomenims importuoti ir eksportuoti tarp HDFS ir RDBMS.
Kas yra Apache avilys?
Apache Hive yra atvirojo kodo duomenų saugykla programa, skirta skaityti, rašyti ir valdyti didžiulius duomenų rinkinius, tiesiogiai saugomus Apache Hadoop paskirstytoje failų sistemoje (HDFS) arba kitose duomenų saugojimo sistemose, pvz., Apache HBase.
SQL kūrėjai gali naudoti „Hive“, kad sukurtų „Hive Query Language“ (HQL) teiginius duomenų užklausoms ir analizei, kurie yra panašūs į įprastus SQL sakinius. Jis buvo sukurtas siekiant palengvinti MapReduce programavimą, nes nereikia mokytis ir rašyti ilgo Java kodo. Vietoj to galite rašyti savo užklausas HQL, o „Hive“ sukurs žemėlapį ir sumažins jūsų funkcijas.
Į SQL panaši „Apache Hive“ sąsaja tapo auksiniu standartu atliekant ad hoc paieškas, apibendrinant ir analizuojant „Hadoop“ duomenis. Kai įtraukta į debesį kompiuteriniai tinklai, šis sprendimas yra ypač ekonomiškas ir keičiamas, todėl daugelis įmonių, įskaitant „Netflix“ ir „Amazon“, toliau kuria ir tobulina „Apache Hive“.
Istorija
Dirbdami „Facebook“ Joydeep Sen Sarma ir Ashish Suchoo kartu sukūrė „Apache Hive“. Jie abu pripažino, kad norėdami išnaudoti visas „Hadoop“ galimybes, turės sukurti gana sudėtingas „Java Map-Reduce“ užduotis. Jie pripažino, kad negalės išmokyti savo sparčiai besiplečiančių inžinierių ir analitikų komandų įgūdžių, kurių jiems prireiks, kad galėtų panaudoti Hadoop visoje įmonėje. Inžinieriai ir analitikai dažnai naudojo SQL kaip vartotojo sąsają.
Nors SQL galėtų patenkinti daugumą analizės poreikių, kūrėjai taip pat ketino įtraukti Hadoop programuojamumą. „Apache Hive“ atsirado dėl šių dviejų tikslų: SQL pagrindu sukurtos deklaratyvios kalbos, kuri taip pat leido kūrėjams įvesti savo scenarijus ir programas, kai SQL neužteko.
Jis taip pat buvo sukurtas siekiant saugoti centralizuotus metaduomenis (pagrįstus „Hadoop“) apie visus įmonės duomenų rinkinius, kad būtų lengviau kurti duomenimis pagrįstas organizacijas.
Kaip veikia Apache Hive?
Trumpai tariant, „Apache Hive“ konvertuoja įvesties programą, parašytą HiveQL (į SQL panašia) kalba, į vieną ar daugiau „Java MapReduce“, „Tez“ arba „Spark“ užduočių. (Visi šie vykdymo varikliai yra suderinami su Hadoop YARN.) Po to Apache Hive sutvarko duomenis į Hadoop paskirstytos failų sistemos HDFS lenteles) ir atlieka užduotis klasteryje, kad gautų atsakymą.
Duomenys
Apache Hive lentelės yra išdėstytos taip pat, kaip lentelės reliacinėje duomenų bazėje, o duomenų vienetai svyruoja nuo didesnių iki mažesnių. Duomenų bazės sudarytos iš lentelių, kurios suskirstytos į skyrius, kurie dar skirstomi į segmentus. HiveQL (hive Query Language) naudojama norint pasiekti duomenis, kuriuos galima pakeisti arba pridėti. Lentelės duomenys yra serijiniai kiekvienoje duomenų bazėje ir kiekviena lentelė turi savo HDFS katalogą.
architektūra
Dabar kalbėsime apie svarbiausią „Hive Architecture“ aspektą. „Apache Hive“ komponentai yra tokie:
Metastore — Ji seka informaciją apie kiekvieną lentelę, pvz., jos struktūrą ir vietą. Padalinio metaduomenys taip pat įtraukti į „Hive“. Tai leidžia vairuotojui stebėti skirtingų duomenų rinkinių, pasklidusių visame klasteryje, eigą. Duomenys saugomi įprastu RDBMS formatu. Avilio metaduomenys yra nepaprastai svarbūs, kad vairuotojas galėtų sekti duomenis. Atsarginės kopijos serveris reguliariai dubliuoja duomenis, kad juos būtų galima atkurti praradus duomenis.
Vairuotojas – HiveQL ataskaitas gauna vairuotojas, kuris veikia kaip valdiklis. Nustatydamas seansus, vairuotojas inicijuoja pareiškimo vykdymą. Ji stebi vykdomojo vadovo gyvenimo trukmę ir pažangą. Vykdant HiveQL pareiškimą, tvarkyklė išsaugo reikiamus metaduomenis. Jis taip pat naudojamas kaip duomenų arba užklausos rezultatų rinkimo taškas po mažinimo proceso.
sudarytojas – Vykdo HiveQL užklausų kompiliaciją. Užklausa dabar konvertuojama į vykdymo planą. Užduotys surašytos plane. Tai taip pat apima veiksmus, kuriuos „MapReduce“ turi atlikti, kad gautų užklausos išverstą rezultatą. Hive kompiliatorius (AST) užklausą konvertuoja į abstrakčią sintaksės medį. Patikrinus suderinamumą ir kompiliavimo laiko klaidas (DAG), AST konvertuojamas į nukreiptą aciklinį grafiką.
Optimizatorius – Jis optimizuoja DAG, atlikdamas įvairius vykdymo plano pakeitimus. Jis sujungia transformacijas, kad padidintų efektyvumą, pavyzdžiui, sujungimų vamzdyno pavertimas vienu sujungimu. Kad padidintų greitį, optimizavimo priemonė gali padalinti veiklą, pvz., pritaikyti duomenų transformaciją prieš atlikdama mažinimo operaciją.
Vykdytojas – Vykdytojas vykdo užduotis, kai baigiamas kompiliavimas ir optimizavimas. Darbus suplanuoja Vykdytojas.
CLI, UI ir Thrift Server – Komandinės eilutės sąsaja (CLI) yra vartotojo sąsaja, leidžianti išoriniam vartotojui susisiekti su „Hive“. „Hive“ taupus serveris, panašus į JDBC arba ODBC protokolus, leidžia išoriniams klientams susisiekti su „Hive“ tinkle.
saugumas
„Apache Hive“ yra integruota su „Hadoop“ sauga, kuri naudoja „Kerberos“ kliento ir serverio abipusiam autentifikavimui. HDFS diktuoja leidimus naujai sugeneruotiems failams „Apache Hive“, leidžiantį patvirtinti vartotojui, grupei ir kitiems.
Pagrindinės savybės
- Hive palaiko išorines lenteles, kurios leidžia apdoroti duomenis nesaugodami jų HDFS.
- Tai taip pat įgalina duomenų segmentavimą lentelės lygiu, kad padidėtų greitis.
- „Apache Hive“ puikiai atitinka „Hadoop“ žemo lygio sąsajos poreikį.
- „Hive“ palengvina duomenų apibendrinimą, užklausų teikimą ir analizę.
- HiveQL nereikalauja jokių programavimo įgūdžių; pakanka paprasto SQL užklausų supratimo.
- Taip pat galime naudoti „Hive“ duomenų analizės ad hoc užklausoms atlikti.
- Jis keičiamas, pažįstamas ir pritaikomas.
- HiveQL nereikalauja jokių programavimo įgūdžių; pakanka paprasto SQL užklausų supratimo.
Privalumai
„Apache Hive“ leidžia teikti dienos pabaigos ataskaitas, kasdien vertinti sandorius, atlikti ad hoc paieškas ir analizuoti duomenis. Išsamios „Apache Hive“ įžvalgos suteikia didelių konkurencinių pranašumų ir padeda lengviau reaguoti į rinkos poreikius.
Štai keletas tokios informacijos privalumų:
- Lengva naudoti – Naudojant į SQL panašią kalbą, duomenų užklausa yra paprasta suprasti.
- Pagreitintas duomenų įvedimas – Kadangi „Apache Hive“ skaito schemą nepatikrinusi lentelės tipo ar schemos apibrėžimo, duomenų nereikia skaityti, analizuoti ir nuosekliai perkelti į diską vidiniu duomenų bazės formatu. Priešingai, įprastoje duomenų bazėje duomenys turi būti patvirtinti kiekvieną kartą, kai jie pridedami.
- Puikus mastelio keitimas, lankstumas ir ekonomiškumas – Kadangi duomenys saugomi HDFS, „Apache Hive“ gali talpinti 100 petabaitų duomenų, todėl tai yra kur kas labiau keičiamo dydžio parinktis nei įprasta duomenų bazė. „Apache Hive“, kaip debesyje pagrįsta „Hadoop“ paslauga, leidžia klientams greitai sukti aukštyn ir žemyn virtualius serverius, kad atitiktų kintančius darbo krūvius.
- Didelis darbingumas – Dideli duomenų rinkiniai gali apdoroti iki 100,000 XNUMX užklausų per valandą.
Trūkumai
- Apskritai „Apache Hive“ užklausos turi labai didelę delsą.
- Papildomos užklausos palaikymas yra ribotas.
- Užklausos realiuoju laiku ir eilutės lygio pakeitimai nepasiekiami „Apache Hive“.
- Materializuotoms pažiūroms nepalaikoma.
- Avilyje atnaujinimo ir ištrynimo veiksmai nepalaikomi.
- Neskirtas OLTP (internetinis pereinamasis procesas).
Darbo su Apache Hive pradžia
„Apache Hive“ yra stiprus „Hadoop“ partneris, kuris supaprastina ir supaprastina jūsų darbo eigą. Norint išnaudoti visas „Apache Hive“ galimybes, būtina sklandžiai integruoti. Pirmas žingsnis yra eiti į Interneto svetainė.
1. Diegimo avilys iš stabilaus išleidimo
Pradėkite atsisiųsdami naujausią stabilų „Hive“ leidimą iš vieno iš „Apache“ atsisiuntimo veidrodžių (žr Avilio leidimai). Tada tarball turi būti išpakuotas. Taip bus sukurtas poaplankis, vadinamas hive-xyz (kur xyz yra išleidimo numeris):
Nustatykite aplinkos kintamąjį HIVE_HOME, kad jis nukreiptų į diegimo katalogą:
Galiausiai pridėkite $HIVE_HOME/bin prie savo PATH
:
2. Bėgantis avilys
Avilys naudoja Hadoop, todėl:
- turite turėti Hadoop savo kelyje ARBA
3. DLL veikimas
Avilio lentelės kūrimas
sugeneruoja lentelę pavadinimu pokes su dviem stulpeliais, iš kurių pirmasis yra sveikasis skaičius, o antrasis yra eilutė.
Naršymas po lenteles
Visų lentelių sąrašas
Lentelių keitimas ir išmetimas
Lentelių pavadinimus galima keisti ir stulpelius pridėti arba pakeisti:
Verta paminėti, kad REPLACE COLUMNS pakeičia visus esamus stulpelius ir keičia tik lentelės struktūrą, o ne duomenis. Lentelėje turi būti naudojamas vietinis SerDe. REPLACE COLUMNS taip pat galima naudoti norint pašalinti stulpelius iš lentelės schemos:
Numetimo lentelės
„Apache Hive“ yra daug papildomų operacijų ir funkcijų, apie kurias galite sužinoti apsilankę oficialioje svetainėje.
Išvada
Avilio apibrėžimas yra duomenų programos sąsaja, skirta didelių duomenų rinkinių, sukurtų „Apache Hadoop“ pagrindu, užklausoms ir analizei. Profesionalai renkasi jį, o ne kitas programas, įrankius ir programinę įrangą, nes ji daugiausia skirta dideliems Hive duomenims ir yra paprasta naudoti.
Tikimės, kad ši pamoka padės jums pradėti naudoti „Apache Hive“ ir padaryti jūsų darbo eigą efektyvesnę. Praneškite mums komentaruose.
Palikti atsakymą