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

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

  1. Hive รผgyfelek
  2. Hive szolgรกltatรกsok
  3. 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:

Munkavรฉgzรฉs folyamata

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;

  1. Lekรฉrdezรฉs vรฉgrehajtรกsa a felhasznรกlรณi felรผletrล‘l (felhasznรกlรณi felรผlet)
  2. 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
  3. 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
  4. A Meta Store visszakรผldi a metaadat-informรกciรณkat a fordรญtรณnak
  5. A fordรญtรณ kommunikรกl a meghajtรณval a lekรฉrdezรฉs vรฉgrehajtรกsรกnak javasolt tervรฉvel
  6. Illesztล‘program vรฉgrehajtรกsi terveket kรผld a vรฉgrehajtรกsi motornak
  7. 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
  1. Eredmรฉnyek lekรฉrรฉse az illesztล‘programtรณl
  2. 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.

Foglald รถssze ezt a bejegyzรฉst a kรถvetkezล‘kรฉppen: