Mi az a Hive? Architecture & Modes
Mi az a Hive?
A Hive egy ETL รฉs adattรกrhรกz-eszkรถz, amelyet a Hadoop Distributed File System (HDFS) tetejรฉn fejlesztettek ki. A kaptรกr megkรถnnyรญti a munkรกt olyan mลฑveletek elvรฉgzรฉsรฉhez, mint pl
- Adatok beรกgyazรกsa
- Ad-hoc lekรฉrdezรฉsek
- Hatalmas adathalmazok elemzรฉse
A Hive fontos jellemzลi
- A Hive-ben elลszรถr a tรกblรกk รฉs adatbรกzisok jรถnnek lรฉtre, majd az adatok betรถltลdnek ezekbe a tรกblรกkba.
- Hive, mint adattรกrhรกz, amelyet csak a tรกblรกkban tรกrolt strukturรกlt adatok kezelรฉsรฉre รฉs lekรฉrdezรฉsรฉre terveztek.
- Mikรถzben a strukturรกlt adatokkal foglalkozik, a Map Reduce nem rendelkezik olyan optimalizรกlรกsi รฉs hasznรกlhatรณsรกgi funkciรณkkal, mint az UDF-ek, a Hive keretrendszer viszont igen. A lekรฉrdezรฉsoptimalizรกlรกs a lekรฉrdezรฉs vรฉgrehajtรกsรกnak hatรฉkony mรณdjรกra utal a teljesรญtmรฉny szempontjรกbรณl.
- A Hive SQL-ihlette nyelve elvรกlasztja a felhasznรกlรณt a Map Reduce programozรกs รถsszetettsรฉgรฉtลl. A tanulรกs megkรถnnyรญtรฉse รฉrdekรฉben รบjrafelhasznรกlja a relรกciรณs adatbรกzisok vilรกgรกbรณl ismert fogalmakat, pรฉldรกul tรกblรกzatokat, sorokat, oszlopokat รฉs sรฉmรกkat stb.
- A Hadoop programozรกsa lapos fรกjlokon mลฑkรถdik. รgy a Hive cรญmtรกrstruktรบrรกkat hasznรกlhat az adatok โparticionรกlรกsรกraโ, hogy javรญtsa bizonyos lekรฉrdezรฉsek teljesรญtmรฉnyรฉt.
- A Hive, azaz a Metastore รบj รฉs fontos รถsszetevลje, amelyet a sรฉmainformรกciรณk tรกrolรกsรกra hasznรกlnak. Ez a metastore รกltalรกban egy relรกciรณs adatbรกzisban talรกlhatรณ. A Hive-vel olyan mรณdszerekkel lรฉphetรผnk kapcsolatba, mint pl
- Webes felhasznรกlรณi felรผlet
- Java Adatbรกzis-kapcsolat (JDBC) interfรฉsz
- A legtรถbb interakciรณ รกltalรกban parancssori felรผleten (CLI) keresztรผl megy vรฉgbe. A Hive egy CLI-t biztosรญt a Hive-lekรฉrdezรฉsek รญrรกsรกhoz a Hive Query Language (HQL) hasznรกlatรกval.
- รltalรกban a HQL szintaxis hasonlรณ a SQL szintaxis, amelyet a legtรถbb adatelemzล ismer. Az alรกbbi mintalekรฉrdezรฉs megjelenรญti az emlรญtett tรกblanรฉvben talรกlhatรณ รถsszes rekordot.
- Minta lekรฉrdezรฉs : Vรกlasszon
- A Hive nรฉgy fรกjlformรกtumot tรกmogat TEXTFILE, SEQUENCEFILE, ORC รฉs RCFILE (Rรถgzรญtรฉs oszlopfรกjl).
- Egyfelhasznรกlรณs metaadatok tรกrolรกsรกra a Hive derby adatbรกzist hasznรกl, tรถbbfelhasznรกlรณs metaadat vagy megosztott metaadat esetรฉn pedig a Hive MYSQL-t hasznรกl.
A beรกllรญtรกshoz MySQL adatbรกziskรฉnt รฉs a meta-adatok tรกrolรกsรกhoz ellenลrizze a bemutatรณt "HIVE รฉs MYSQL telepรญtรฉse รฉs konfigurรกlรกsa"
Nรฉhรกny kulcsfontossรกgรบ pont a Hive-vel kapcsolatban:
- A HQL รฉs az SQL kรถzรถtti fล kรผlรถnbsรฉg az, hogy a Hive-lekรฉrdezรฉs a Hadoop infrastruktรบrรกjรกn fut, nem pedig a hagyomรกnyos adatbรกzison.
- A Hive lekรฉrdezรฉs vรฉgrehajtรกsa olyan lesz, mint az automatikusan generรกlt tรฉrkรฉpcsรถkkentรฉsi feladatok sorozata.
- A Hive tรกmogatja a partรญciรณs รฉs gyลฑjtลgyลฑjtลi koncepciรณkat az adatok egyszerลฑ lekรฉrรฉsรฉhez, amikor az รผgyfรฉl vรฉgrehajtja a lekรฉrdezรฉst.
- A Hive tรกmogatja az egyedi UDF-et (User Defined Functions) az adatok tisztรญtรกsรกhoz, szลฑrรฉsรฉhez stb. A programozรณk igรฉnyei szerint lehet Hive UDF-eket definiรกlni.
Hive vs relรกciรณs adatbรกzisok
A Hive hasznรกlatรกval olyan kรผlรถnleges funkciรณkat hajthatunk vรฉgre, amelyeket a relรกciรณs adatbรกzisokban nem รฉrรผnk el. Hatalmas mennyisรฉgลฑ, peta-byte-ban lรฉvล adat esetรฉn fontos a lekรฉrdezรฉs รฉs az eredmรฉnyek mรกsodpercek alatti elรฉrรฉse. A Hive pedig ezt meglehetลsen hatรฉkonyan teszi, gyorsan feldolgozza a lekรฉrdezรฉseket, รฉs pillanatok alatt hoz eredmรฉnyt.
Lรกssuk most, mitลl olyan gyors Hive.
A Hive รฉs a relรกciรณs adatbรกzisok kรถzรถtti nรฉhรกny fล kรผlรถnbsรฉg a kรถvetkezล;
A relรกciรณs adatbรกzisokSรฉma az OLVASรS รฉs a sรฉma รญrรกsnรกlโ. Elลszรถr hozzon lรฉtre egy tรกblรกt, majd szรบrjon be adatokat az adott tรกblรกba. A relรกciรณs adatbรกzistรกblรกkon olyan funkciรณk hajthatรณk vรฉgre, mint a Beillesztรฉsek, Frissรญtรฉsek รฉs Mรณdosรญtรกsok.
Kaptรกr a "Sรฉma csak OLVASรSONโ. Tehรกt az olyan funkciรณk, mint a frissรญtรฉs, mรณdosรญtรกsok stb., nem mลฑkรถdnek ezzel. Mivel a Hive-lekรฉrdezรฉs egy tipikus fรผrtben tรถbb adatcsomรณponton fut. รgy nem lehetsรฉges az adatok frissรญtรฉse รฉs mรณdosรญtรกsa tรถbb csomรณponton keresztรผl. (0.13 alatti Hive-verziรณk)
Ezenkรญvรผl a Hive tรกmogatjaOLVASSA Sokan รRNAK Egyszer" minta. Ez azt jelenti, hogy a tรกblรกzat beillesztรฉse utรกn frissรญthetjรผk a tรกblรกt a legรบjabb Hive verziรณkban.
JEGYZET: A Hive รบj verziรณja azonban frissรญtett funkciรณkat tartalmaz. A Hive verziรณk (Hive 0.14) รบj szolgรกltatรกskรฉnt a Frissรญtรฉs รฉs a Tรถrlรฉs opciรณkkal jelentkeznek
Kaptรกr Architectรบra
A fenti kรฉpernyลkรฉp elmagyarรกzza a Apache Kaptรกr รฉpรญtรฉszet rรฉszletesen
Kaptรกr Fลleg 3 fล rรฉszbลl รกll
- Hive รผgyfelek
- Hive szolgรกltatรกsok
- Kaptรกr tรกrolรกs รฉs szรกmรญtรกstechnika
Hive รผgyfelek:
A Hive kรผlรถnbรถzล illesztลprogramokat biztosรญt a kรผlรถnbรถzล tรญpusรบ alkalmazรกsokkal valรณ kommunikรกciรณhoz. A Thrift alapรบ alkalmazรกsokhoz Thrift klienst biztosรญt a kommunikรกciรณhoz.
Minden Java kapcsolรณdรณ alkalmazรกsokat, JDBC illesztลprogramokat biztosรญt. Az alkalmazรกsoktรณl eltรฉrล ODBC-illesztลprogramok biztosรญtottak. Ezek az รผgyfelek รฉs illesztลprogramok ismรฉt kommunikรกlnak a Hive-kiszolgรกlรณval a Hive-szolgรกltatรกsokban.
Kaptรกr szolgรกltatรกsok:
Az รผgyfelek รฉs a Hive kรถzรถtti interakciรณk a Hive Services szolgรกltatรกson keresztรผl hajthatรณk vรฉgre. Ha az รผgyfรฉl bรกrmilyen lekรฉrdezรฉssel kapcsolatos mลฑveletet szeretne vรฉgrehajtani a Hive-ben, akkor a Hive Services szolgรกltatรกson keresztรผl kell kommunikรกlnia.
A CLI a parancssori felรผlet, amely Hive-szolgรกltatรกskรฉnt mลฑkรถdik a DDL (adatdefinรญciรณs nyelv) mลฑveletekhez. Minden illesztลprogram kommunikรกl a Hive-kiszolgรกlรณval รฉs a Hive-szolgรกltatรกsok fล illesztลprogramjรกval, amint az a fenti architektรบra diagramon lรกthatรณ.
A Hive szolgรกltatรกsokban jelenlรฉvล illesztลprogram jelenti a fล illesztลprogramot, รฉs minden tรญpusรบ JDBC-t, ODBC-t รฉs egyรฉb kliens-specifikus alkalmazรกsokat kommunikรกl. Az illesztลprogram feldolgozza a kรผlรถnbรถzล alkalmazรกsoktรณl รฉrkezล kรฉrรฉseket a metatรกrolรณkba รฉs a terepi rendszerekbe tovรกbbi feldolgozรกs cรฉljรกbรณl.
Kaptรกr tรกrolรกs รฉs szรกmรญtรกstechnika:
A Hive szolgรกltatรกsok, pรฉldรกul a Meta Store, a Fรกjlrendszer รฉs a Job Client viszont kommunikรกl a Hive tรกrhellyel, รฉs a kรถvetkezล mลฑveleteket hajtja vรฉgre
- A Hive-ban lรฉtrehozott tรกblรกk metaadat-informรกciรณit a Hive โMeta Storage Databaseโ tรกrolja.
- A lekรฉrdezรฉsek eredmรฉnyei รฉs a tรกblรกkba betรถltรถtt adatok a HDFS Hadoop-fรผrtjรฉben lesznek tรกrolva.
Munkavรฉgzรฉs menete:
A fenti kรฉpernyลkรฉpbลl megรฉrthetjรผk a feladat vรฉgrehajtรกsi folyamatรกt a Hive with Hadoop segรญtsรฉgรฉvel
A Hive adatfolyama a kรถvetkezล minta szerint mลฑkรถdik;
- Lekรฉrdezรฉs vรฉgrehajtรกsa a felhasznรกlรณi felรผletrลl (felhasznรกlรณi felรผlet)
- Az illesztลprogram egyรผttmลฑkรถdik a Compilerrel a terv beszerzรฉse รฉrdekรฉben. (Itt a terv a lekรฉrdezรฉs vรฉgrehajtรกsรกra vonatkozik) folyamat รฉs a kapcsolรณdรณ metaadat informรกciรณgyลฑjtรฉs
- A fordรญtรณ elkรฉszรญti a tervet a vรฉgrehajtandรณ feladathoz. A Meta รกruhรกzzal kommunikรกlรณ fordรญtรณ a metaadatkรฉrรฉs lekรฉrรฉsรฉhez
- A Meta Store visszakรผldi a metaadat-informรกciรณkat a fordรญtรณnak
- A fordรญtรณ kommunikรกl a meghajtรณval a lekรฉrdezรฉs vรฉgrehajtรกsรกnak javasolt tervรฉvel
- Illesztลprogram vรฉgrehajtรกsi terveket kรผld a vรฉgrehajtรกsi motornak
- Az Execution Engine (EE) hรญdkรฉnt mลฑkรถdik a Hive รฉs a Hadoop kรถzรถtt a lekรฉrdezรฉs feldolgozรกsรกhoz. DFS mลฑveletekhez.
- Az EE-nek elลszรถr kapcsolatba kell lรฉpnie a nรฉvcsomรณponttal, majd az adatcsomรณpontokkal, hogy megkapja a tรกblรกzatokban tรกrolt รฉrtรฉkeket.
- Az EE le fogja kรฉrni a kรญvรกnt rekordokat az adatcsomรณpontokbรณl. A tรกblรกk tรฉnyleges adatai csak az adatcsomรณpontban talรกlhatรณk. Mรญg a Name Node-bรณl csak a lekรฉrdezรฉs metaadat-informรกciรณit kรฉri le.
- Az emlรญtett lekรฉrdezรฉshez kapcsolรณdรณ adatcsomรณpontokbรณl tรฉnyleges adatokat gyลฑjt
- Az Execution Engine (EE) kรฉtirรกnyรบ kommunikรกciรณt folytat a Hive-ben talรกlhatรณ Meta tรกrolรณval a DDL (Data Definition Language) mลฑveletek vรฉgrehajtรกsa รฉrdekรฉben. Itt olyan DDL mลฑveleteket hajtanak vรฉgre, mint a CREATE, DROP รฉs ALTERING tรกblรกk รฉs adatbรกzisok. A Meta Store csak az adatbรกzisnรฉvrลl, a tรกblanevekrลl รฉs az oszlopnevekrลl tรกrol informรกciรณkat. Lekรฉri az emlรญtett lekรฉrdezรฉssel kapcsolatos adatokat.
- Az Execution Engine (EE) viszont kommunikรกl a Hadoop dรฉmonokkal, mint pรฉldรกul a Name node, az Data node-ok รฉs a jobok. tracker a lekรฉrdezรฉs vรฉgrehajtรกsรกhoz a Hadoop fรกjlrendszeren
- Eredmรฉnyek lekรฉrรฉse az illesztลprogramtรณl
- Eredmรฉnyek kรผldรฉse a vรฉgrehajtรณ motornak. Miutรกn az eredmรฉnyeket lekรฉrtรฉk az adatcsomรณpontokrรณl az EE-be, az eredmรฉnyeket visszakรผldi az illesztลprogramnak รฉs a felhasznรกlรณi felรผletnek (elลtt)
Hive Folyamatos kapcsolatban a Hadoop fรกjlrendszerrel รฉs annak dรฉmonjaival az Execution motoron keresztรผl. A feladat folyamatรกbrรกjรกban lรกthatรณ pontozott nyรญl az Execution motor kommunikรกciรณjรกt mutatja a Hadoop dรฉmonokkal.
A Hive kรผlรถnbรถzล mรณdjai
A Hive kรฉt mรณdban mลฑkรถdhet a Hadoop adatcsomรณpontjainak mรฉretรฉtลl fรผggลen.
Ezek a mรณdok,
- Helyi mรณd
- Tรฉrkรฉpcsรถkkentรฉsi mรณd
Mikor รฉrdemes helyi mรณdot hasznรกlni:
- Ha a Hadoop pszeudo mรณdban van telepรญtve egy adatcsomรณponttal, akkor ebben a mรณdban a Hive-ot hasznรกljuk
- Ha az adatmรฉret kisebb, ha egyetlen helyi gรฉpre korlรกtozรณdik, akkor ezt a mรณdot hasznรกlhatjuk
- A feldolgozรกs nagyon gyors lesz a helyi gรฉpen lรฉvล kisebb adatkรฉszleteken
Mikor kell hasznรกlni a Tรฉrkรฉp kicsinyรญtรฉsi mรณdot:
- Ha a Hadoop tรถbb adatcsomรณponttal rendelkezik, รฉs az adatok kรผlรถnbรถzล csomรณpontok kรถzรถtt vannak elosztva, ebben a mรณdban a Hive-ot hasznรกljuk
- Nagy mennyisรฉgลฑ adatkรฉszleten fog teljesรญteni, รฉs pรกrhuzamosan fog vรฉgrehajtani a lekรฉrdezรฉst
- Nagy adathalmazok jobb teljesรญtmรฉnyลฑ feldolgozรกsa รฉrhetล el ezzel a mรณddal
A Hive-ban beรกllรญthatjuk ezt a tulajdonsรกgot, hogy megemlรญtse, melyik mรณdban mลฑkรถdhet a Hive? Alapรฉrtelmezรฉs szerint Tรฉrkรฉpkicsinyรญtรฉs mรณdban mลฑkรถdik, helyi mรณdban pedig a kรถvetkezล beรกllรญtรกsokat hasznรกlhatja.
Kaptรกr a helyi mรณdban tรถrtรฉnล munkavรฉgzรฉshez
SET mapred.job.tracker=helyi;
A Hive 0.7-es verziรณjรกtรณl kezdve tรกmogatja a tรฉrkรฉpcsรถkkentรฉsi feladatok helyi mรณdban tรถrtรฉnล automatikus futtatรกsรกt.
Mi az a Hive Server2 (HS2)?
A HiveServer2 (HS2) egy szerver interfรฉsz, amely a kรถvetkezล funkciรณkat lรกtja el:
- Lehetลvรฉ teszi a tรกvoli รผgyfelek szรกmรกra, hogy lekรฉrdezรฉseket hajtsanak vรฉgre a Hive ellen
- Kรฉrje le az emlรญtett lekรฉrdezรฉsek eredmรฉnyeit
A legรบjabb verziรณtรณl kezdve a Thrift RPC-n alapulรณ fejlett funkciรณkkal rendelkezik, mint pรฉldรกul;
- Tรถbb รผgyfรฉl pรกrhuzamossรกga
- Hitelesรญtรฉs
รsszegzรฉskรฉnt
A Hive egy ETL รฉs adattรกrhรกz-eszkรถz a Hadoop รถkoszisztรฉmรกn, รฉs strukturรกlt รฉs fรฉlig strukturรกlt adatok feldolgozรกsรกra szolgรกl.
- A Hive egy a Hadoop รถkoszisztรฉmรกban jelenlรฉvล adatbรกzis, amely DDL รฉs DML mลฑveleteket hajt vรฉgre, รฉs rugalmas lekรฉrdezรฉsi nyelvet, pรฉldรกul HQL-t biztosรญt az adatok jobb lekรฉrdezรฉsรฉhez รฉs feldolgozรกsรกhoz.
- Az RDMS-hez kรฉpest nagyon sok funkciรณt kรญnรกl, amelynek vannak bizonyos korlรกtai.
A felhasznรกlรณ-specifikus logika รฉrdekรฉben, hogy megfeleljen az รผgyfรฉl igรฉnyeinek.
- Lehetลsรฉget biztosรญt egyรฉni definiรกlt szkriptek รฉs felhasznรกlรณ รกltal definiรกlt funkciรณk รญrรกsรกra รฉs telepรญtรฉsรฉre.
- Ezenkรญvรผl partรญciรณkat รฉs tรกrolรณhelyeket biztosรญt a tรกrolรกsspecifikus logikรกkhoz.


