Mi az a Hive? Architecture & Modes
โก Okos รถsszefoglalรณ
A Hive a Hadoop รถkoszisztรฉma SQL rรฉtege, amely a HiveQL utasรญtรกsokat elosztott feladatokkรก alakรญtja, amelyek a HDFS-en mรกr talรกlhatรณ strukturรกlt adatokat olvassรกk, รญgy az elemzลk petabรกjtos tรกblรกkat kรฉrdezhetnek le anรฉlkรผl, hogy maguk MapReduce kรณdot รญrnรกnak.

Mi az a Hive?
A Hive egy ETL รฉs adattรกrhรกz eszkรถz, amelyet a Hadoop elosztott fรกjlrendszerre (HDFS) fejlesztettek ki. A Hive megkรถnnyรญti az olyan mลฑveletek vรฉgrehajtรกsรกt, mint a
- Adatok beรกgyazรกsa
- Ad-hoc lekรฉrdezรฉsek
- Hatalmas adathalmazok elemzรฉse
A Hive fontos jellemzลi
Az alรกbbi pontok elmagyarรกzzรกk, mi kรผlรถnbรถzteti meg a Hive-ot egy sima MapReduce programtรณl.
- 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.
- A Hive egy adattรกrhรกz, amelyet csak tรกblรกzatokban tรกrolt strukturรกlt adatok kezelรฉsรฉre รฉs lekรฉrdezรฉsรฉre terveztek.
- Strukturรกlt adatok kezelรฉsekor a MapReduce nem rendelkezik optimalizรกlรกsi รฉs hasznรกlhatรณsรกgi funkciรณkkal, mint az UDF-ek, de a Hive keretrendszer igen. A lekรฉrdezรฉsoptimalizรกlรกs a lekรฉrdezรฉsek vรฉgrehajtรกsรกnak teljesรญtmรฉny szempontjรกbรณl hatรฉkony mรณdjรกt jelenti.
- A Hive SQL-inspirรกlta nyelve kiemeli a felhasznรกlรณt a MapReduce programozรกs bonyolultsรกgรกbรณl. A relรกciรณs adatbรกzisok vilรกgรกbรณl ismert fogalmakat, pรฉldรกul a tรกblรกzatokat, sorokat, oszlopokat รฉs sรฉmรกkat hasznรกlja รบjra a kรถnnyebb elsajรกtรญtรกs รฉrdekรฉben.
- A Hadoop programozรกsa egyszerลฑ fรกjlokon mลฑkรถdik. Tehรกt a Hive kรถnyvtรกrszerkezeteket hasznรกlhat a kรถvetkezลkre: โpartรญciรณโ adatok bizonyos lekรฉrdezรฉsek teljesรญtmรฉnyรฉnek javรญtรกsa รฉrdekรฉben.
- A Hive fontos รถsszetevลje a metaadattรกr, amely a sรฉmainformรกciรณk tรกrolรกsรกra szolgรกl. Ez a metaadattรกr jellemzลen egy relรกciรณs adatbรกzisban talรกlhatรณ. A Hive-val olyan metรณdusokkal kommunikรกlhatunk, mint a
- 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 tรถrtรฉnik. A Hive egy CLI-t biztosรญt 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 minta lekรฉrdezรฉs megjelenรญti az emlรญtett tรกbla nevรฉben talรกlhatรณ รถsszes rekordot.
- Minta lekรฉrdezรฉs : Vรกlasszon
- A Hive nรฉgy fรกjlformรกtumot tรกmogat, ezek a kรถvetkezลk: TEXTFILE, SEQUENCEFILE, ORC รฉs RCFILE (Rรถgzรญtรฉs oszlopfรกjl).
- Egyfelhasznรกlรณs metaadatok tรกrolรกsรกhoz a Hive a Derby adatbรกzist hasznรกlja, tรถbbfelhasznรกlรณs vagy megosztott metaadatok tรกrolรกsรกhoz pedig a Hive a kรถvetkezลt. MySQL.
A beรกllรญtรกshoz MySQL adatbรกziskรฉnt รฉs metaadat-informรกciรณk tรกrolรกsรกra vonatkozรณan tekintse meg a kรถvetkezล oktatรณanyagot: a Hive metaadattรกr konfigurรกlรกsa a kรถvetkezลvel: MySQL, amely a Kaptรกr telepรญtรฉsi รบtmutatรณ.
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 egy hagyomรกnyos adatbรกzison.
- A Hive lekรฉrdezรฉs vรฉgrehajtรกsa automatikusan generรกlt lekรฉrdezรฉsek sorozata. MapReduce munkahelyeket.
- A Hive tรกmogatja a partรญciรณs รฉs tรกrolรณkoncepciรณkat az adatok egyszerลฑ lekรฉrรฉsรฉhez, amikor az รผgyfรฉl vรฉgrehajtja a lekรฉrdezรฉst.
- A kaptรกr tรกmogatja az egyรฉni UDF-ek (felhasznรกlรณ รกltal definiรกlt fรผggvรฉnyek) adattisztรญtรกshoz, szลฑrรฉshez รฉs hasonlรณ munkรกkhoz. A programozรณk igรฉnyei szerint definiรกlhatรณk Hive UDF-ek.
Hive vs relรกciรณs adatbรกzisok
A Hive olyan funkciรณkat lรกt el, amelyekre a relรกciรณs adatbรกzisok nem kรฉpesek. Amikor az adatok petabรกjtban futnak, az eredmรฉnyek mรกsodperceken belรผli visszaadรกsa szรกmรญt, รฉs a Hive ezt hatรฉkonyan teszi. A fลbb kรผlรถnbsรฉgek a kรถvetkezลk.
A relรกciรณs adatbรกzisok a kรถvetkezลk: โsรฉma olvasรกskor รฉs sรฉma รญrรกskorโ: elลszรถr egy tรกbla jรถn lรฉtre, majd adatok kerรผlnek beillesztรฉsre ebbe a tรกblรกba. A relรกciรณs adatbรกzis tรกblรกin olyan funkciรณk hajthatรณk vรฉgre, mint a beszรบrรกs, frissรญtรฉs รฉs mรณdosรญtรกs.
A kaptรกr โSรฉma csak olvashatรณโTehรกt az olyan fรผggvรฉnyek, mint az update รฉs a modification, nem mลฑkรถdtek a korai kiadรกsokban, mivel egy Hive lekรฉrdezรฉs egy tipikus fรผrtben tรถbb DataNode-on fut, ami lehetetlennรฉ tette az adatok frissรญtรฉsรฉt รฉs mรณdosรญtรกsรกt tรถbb csomรณponton keresztรผl (0.13 alatti Hive verziรณk).
A Hive tรกmogatja a โSokat olvasok, egyszer รญrokโ minta, รญgy a legรบjabb verziรณkban a tรกbla frissรญthetล a beszรบrรกs utรกn.
JEGYZET: A Hive รบjabb verziรณi frissรญtett funkciรณkkal rendelkeznek. A Hive 0.14-es verziรณjรกban รบj funkciรณkkรฉnt jelentek meg az UPDATE รฉs a DELETE, a kรฉsลbbi kiadรกsok pedig teljes ACID tranzakciรณ-tรกmogatรกst adtak hozzรก.
Az alรกbbi tรกblรกzat รถsszefoglalja az รถsszehasonlรญtรกst.
| Aspect | Relรกciรณs adatbรกzis | Apache Hive |
|---|---|---|
| Sรฉmaรฉrvรฉnyesรญtรฉs | รrรกs kรถzben | Olvasรกs alatt |
| Tipikus adatmennyisรฉg | Gigabรกjtbรณl terabรกjtba | Terabรกjtbรณl petabรกjtba |
| munkaterhelรฉs | Sorszintลฑ OLTP olvasรกs รฉs รญrรกs | Teljes kรถrลฑ kรถtegelt elemzรฉs |
| Lekรฉrdezรฉsi nyelv | SQL | HQL, egy SQL ihlette dialektus |
| Vรฉgrehajtรกs | Adatbรกzis motor | Elosztott fรผrtfeladatok |
Kaptรกr Architectรบra
Az alรกbbi รกbra elmagyarรกzza a Apache A kaptรกr architektรบrรกja rรฉszletesen.
A kaptรกr alapvetลen 3 fล rรฉszbลl รกll:
- Hive kliensek
- Kaptรกrszolgรก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ล alkalmazรกstรญpusokkal valรณ kommunikรกciรณhoz. Thrift-alapรบ alkalmazรกsokhoz egy Thrift klienst biztosรญt a kommunikรกciรณhoz.
Minden Java kapcsolรณdรณ alkalmazรกsokhoz JDBC illesztลprogramokat biztosรญt. Bรกrmely mรกs tรญpusรบ alkalmazรกshoz ODBC illesztลprogramokat biztosรญt. Ezek a kliensek รฉs illesztลprogramok viszont kommunikรกlnak a Hive szerverrel a Hive szolgรกltatรกsokon belรผl.
Hive szolgรกltatรกsok
A kliens รฉs a Hive kรถzรถtti interakciรณk Hive szolgรกltatรกsokon keresztรผl tรถrtรฉnnek. Ha a kliens bรกrmilyen lekรฉrdezรฉssel kapcsolatos mลฑveletet szeretne vรฉgrehajtani a Hive-ban, akkor a Hive szolgรกltatรกsokon keresztรผl kell kommunikรกlnia.
A parancssori felรผlet (CLI) Hive szolgรกltatรกskรฉnt mลฑkรถdik a DDL mลฑveletekhez. Minden illesztลprogram kommunikรกl a Hive szerverrel รฉs a Hive szolgรกltatรกsok fล illesztลprogramjรกval, ahogy az a fenti architektรบra รกbrรกn is lรกthatรณ.
A Hive szolgรกltatรกsokban talรกlhatรณ illesztลprogram a fล illesztลprogram: ez kommunikรกl a JDBC-vel, az ODBC-vel รฉs mรกs kliensspecifikus alkalmazรกsokkal, majd tovรกbbรญtja a kรฉrรฉseiket a metaadattรกrnak รฉs a fรกjlrendszernek tovรกbbi feldolgozรกs cรฉljรกbรณl.
Kaptรกr tรกrolรกs รฉs szรกmรญtรกstechnika
A Hive szolgรกltatรกsok, mint pรฉldรกul a metaadattรกr, a fรกjlrendszer รฉs a feladatkliens, viszont kommunikรกlnak a Hive tรกrolรณfelรผlettel, รฉs a kรถvetkezล mลฑveleteket hajtjรกk vรฉgre:
- A Hive-ban lรฉtrehozott tรกblรกk metaadat-informรกciรณi a Hive-ban tรกrolรณdnak. metaadattรกr adatbรกzis.
- A lekรฉrdezรฉs eredmรฉnyeit รฉs a tรกblรกkba betรถltรถtt adatokat a Hadoop klaszter tรกrolja a kรถvetkezลn: HDFS.
Feladat vรฉgrehajtรกsi folyamata
Az alรกbbi รกbra tracEgyetlen lekรฉrdezรฉs a felhasznรกlรณi felรผletrลl az DataNode-okba รฉs vissza.
A fenti รกbrรกbรณl megรฉrthetjรผk a Hive รฉs a Hadoop kรถzรถtti feladatvรฉgrehajtรกsi folyamatot. A Hive adatfolyama a kรถvetkezล mintรกzat szerint viselkedik.
- Lekรฉrdezรฉs vรฉgrehajtรกsa a felhasznรกlรณi felรผletrลl (UI)
- Az illesztลprogram a fordรญtรณval egyรผttmลฑkรถdve szerzi meg a tervet. (Itt a terv a lekรฉrdezรฉs vรฉgrehajtรกsi folyamatรกra รฉs a kapcsolรณdรณ metaadat-informรกciรณk gyลฑjtรฉsรฉre utal.)
- A fordรญtรณprogram lรฉtrehozza a vรฉgrehajtรกsra kerรผlล feladat tervรฉt. A fordรญtรณprogram kommunikรกl a metaadattรกrral a metaadat-kรฉrelem beszerzรฉse รฉrdekรฉben.
- A metaadattรกr metaadat-informรกciรณkat kรผld vissza a fordรญtรณnak.
- A fordรญtรณprogram kommunikรกl az illesztลprogrammal a lekรฉrdezรฉs vรฉgrehajtรกsรกra vonatkozรณ javasolt tervvel.
- A meghajtรณ vรฉgrehajtรกsi terveket kรผld a vรฉgrehajtรณ motornak.
- A vรฉgrehajtรณ motor (EE) hรญdkรฉnt mลฑkรถdik a Hive รฉs a Hadoop kรถzรถtt a lekรฉrdezรฉs feldolgozรกsรกban, beleรฉrtve a DFS-mลฑveleteket is:
- Az EE elลszรถr a NameNode-dal, majd a DataNode-okkal veszi fel a kapcsolatot, hogy lekรฉrje a tรกblรกzatokban tรกrolt รฉrtรฉkeket.
- Az EE a kรญvรกnt rekordokat a DataNode-okbรณl kรฉri le. A tรฉnyleges tรกblaadatok csak az adatcsomรณpontokon talรกlhatรณk; a NameNode-bรณl csak a lekรฉrdezรฉshez szรผksรฉges metaadatokat kรฉri le.
- Tรฉnyleges adatokat gyลฑjt az emlรญtett lekรฉrdezรฉshez kapcsolรณdรณ adatcsomรณpontokbรณl.
- Az EE kรฉtirรกnyรบ kommunikรกciรณt folytat a metaadattรกrral, hogy DDL (adatdefinรญciรณs nyelv) mลฑveleteket hajtson vรฉgre, pรฉldรกul LรTREHOZรS, ELDOBรS รฉs MรDOSรTรS tรกblรกkon รฉs adatbรกzisokon. A metaadattรกr csak az adatbรกzis-, tรกbla- รฉs oszlopneveket tรกrolja.
- Az EE viszont Hadoop dรฉmonokkal kommunikรกl, mint pรฉldรกul a NameNode, a DataNode รฉs a job. tracker a lekรฉrdezรฉs vรฉgrehajtรกsรกhoz a Hadoop fรกjlrendszeren
- Eredmรฉnyek lekรฉrรฉse a sofลrtลl
- Eredmรฉnyek kรผldรฉse a vรฉgrehajtรณ motornak. Miutรกn az eredmรฉnyeket lekรฉrtรฉk az adatcsomรณpontokrรณl az EE-hez, az visszakรผldi azokat az illesztลprogramnak รฉs a felhasznรกlรณi felรผletnek (front-end).
A Hive a vรฉgrehajtรณ motoron keresztรผl kapcsolatban marad a Hadoop fรกjlrendszerrel รฉs annak dรฉmonaival. Az รกbrรกn a szaggatott nyรญl ezt a kommunikรกciรณt mutatja.
A Hive kรผlรถnbรถzล mรณdjai
A Hive kรฉtfรฉle mรณdban mลฑkรถdhet a Hadoop adatcsomรณpontjainak mรฉretรฉtลl fรผggลen. Ezek a mรณdok a kรถvetkezลk:
- Helyi mรณd
- MapReduce mรณd
Mikor kell hasznรกlni a helyi mรณdot
- Ha a Hadoop pszeudo-elosztott mรณdban van telepรญtve egy adatcsomรณponttal, akkor ebben a mรณdban hasznรกljuk a Hive-ot.
- Ha az adatmรฉret elรฉg kicsi ahhoz, hogy egyetlen helyi gรฉpre korlรกtozรณdjon, 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 MapReduce mรณdot?
- Ha a Hadoop tรถbb adatcsomรณponttal rendelkezik, รฉs az adatok a kรผlรถnbรถzล csomรณpontok kรถzรถtt oszlanak meg, akkor ebben a mรณdban a Hive-ot hasznรกljuk.
- Nagy mennyisรฉgลฑ adaton mลฑkรถdik, รฉs a lekรฉrdezรฉs pรกrhuzamosan fut.
- Nagy adathalmazok jobb teljesรญtmรฉnyลฑ feldolgozรกsa รฉrhetล el ezzel a mรณddal
A Hive-ban beรกllรญthatunk egy tulajdonsรกgot, amely meghatรกrozza, hogy a Hive melyik mรณdban mลฑkรถdjรถn. Alapรฉrtelmezรฉs szerint MapReduce mรณdban mลฑkรถdik, lokรกlis mรณdban pedig a kรถvetkezล beรกllรญtรกst hasznรกlhatjuk:
SET mapred.job.tracker=local;
A Hive 0.7-es verziรณjรกtรณl kezdve tรกmogatja azt a mรณdot, amely automatikusan helyi mรณdban futtatja a MapReduce feladatokat. A Hive 4.x verziรณjรกn az alapรฉrtelmezett motor az Apache Tez, รญgy ez a tulajdonsรกg a korรกbbi MapReduce elรฉrรฉsi รบtra vonatkozik.
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
- Lekรฉri a lekรฉrdezรฉsek eredmรฉnyeit
A jelenlegi verziรณk a Thrift RPC-n alapulรณ fejlett funkciรณkat adnak hozzรก, pรฉldรกul:
- Tรถbb รผgyfรฉl pรกrhuzamossรกga
- Hitelesรญtรฉs
A HS2 a Beeline รฉs minden JDBC vagy ODBC munkamenet mรถgรถtt รกll, ezรฉrt vรกltotta fel az egyfelhasznรกlรณs Hive parancssori felรผletet. HiveQL operรกtorok รฉs beรฉpรญtett fรผggvรฉnyek A hivatkozรกs a termรฉszetes kรถvetkezล lรฉpรฉs.


