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, például a név csomóponttal, az adatcsomópontokkal és a feladatkövetővel, hogy végrehajtsa a lekérdezést a Hadoop fájlrendszer tetején.
  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=local;

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.