Mi a Hive? Építészet & Módok

Tartalomjegyzék:

Anonim

Ebben az oktatóanyagban megtanulja-

  • Mi a Hive?
  • Hive építészet
  • A kaptár különböző módjai
  • Mi az a Hive Server2 (HS2)?

Mi 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 az olyan műveletek végrehajtásához, mint a

  • Adatok beágyazása
  • Ad-hoc lekérdezések
  • Hatalmas adatkészletek elemzése

A Hive fontos jellemzői

  • A Hive-ban először táblákat és adatbázisokat hoznak létre, majd az adatokat betöltik ezekbe a táblákba.
  • Csak a táblázatokban tárolt strukturált adatok kezelésére és lekérdezésére tervezett adattárház.
  • A strukturált adatok kezelése közben a Map Reduce nem rendelkezik optimalizálási és használhatósági funkciókkal, mint például az UDF-ek, de a Hive keretrendszerrel. A lekérdezés optimalizálása a lekérdezés végrehajtásának hatékony módjára utal a teljesítmény szempontjából.
  • A Hive SQL által inspirált nyelve elválasztja a felhasználót a Map Reduce programozás bonyolultságától. A tanulás megkönnyítése érdekében újból felhasználja a relációs adatbázis-világból ismert fogalmakat, például táblákat, sorokat, oszlopokat és sémákat stb.
  • A Hadoop programozása lapos fájlokon működik. Tehát a Hive címtárstruktúrákat használhat az adatok "particionálására" bizonyos lekérdezések teljesítményének javításához.
  • A Hive új és fontos összetevője, azaz a Metastore a sémainformációk tárolására szolgál. Ez a Metastore általában egy relációs adatbázisban található. Olyan módszerekkel léphetünk kapcsolatba Hive-zal, mint
    • Webes GUI
    • Java Database Connectivity (JDBC) interfész
  • A legtöbb interakció általában egy parancssori felületen (CLI) keresztül zajlik. A Hive CLI-t biztosít a Hive-lekérdezések Hive Query Language (HQL) használatával történő megírásához.
  • Általában a HQL szintaxis hasonló az SQL-szintaxishoz, amelyet a legtöbb adatelemző ismer. Az alábbi Minta lekérdezés megjeleníti az összes tábla nevében szereplő rekordot.
    • Minta lekérdezés : Válassza a * lehetőséget a mezőben
  • A Hive négy fájlformátumot támogat: TEXTFILE, SEQUENCEFILE, ORC és RCFILE ( Oszlopfájl rögzítése).
  • Az egyfelhasználós metaadatok tárolásához a Hive derby adatbázist, a többfelhasználós metaadatok vagy megosztott metaadatok esetében a Hive MYSQL-t használ.

A MySQL adatbázisként történő beállításához és a metaadatok tárolásához ellenőrizze a "HIVE és MYSQL telepítése és konfigurálása" oktatóanyagot.

Néhány kulcsfontosságú pont a kaptárral kapcsolatban:

  • A fő különbség a HQL és az SQL között az, hogy a Hive lekérdezés a Hadoop infrastruktúráján hajt végre, nem pedig a hagyományos adatbázison.
  • A Hive lekérdezés olyan lesz, mint az automatikusan létrehozott térképcsökkentő munkák sorozata.
  • A Hive támogatja a partíciók és a vázlatok koncepcióit az adatok egyszerű visszakereséséhez, amikor az ügyfél végrehajtja a lekérdezést.
  • A Hive támogatja az egyedi UDF (User Defined Functions) használatát az adatok tisztításához, szűréséhez stb. A programozók igényei szerint meghatározható a Hive UDF.

Hive Vs relációs adatbázisok: -

A Hive használatával olyan sajátos funkciókat hajthatunk végre, amelyeket a Relációs adatbázisok nem érnek el. Hatalmas mennyiségű, béta bájtban lévő adat esetében fontos a lekérdezés és az eredmények másodpercek alatt történő elérése. A Hive pedig ezt elég hatékonyan végzi, gyorsan feldolgozza a lekérdezéseket és másodpercek alatt eredményt hoz.

Lássuk most, mitől olyan gyorsan Hive.

Néhány kulcsfontosságú különbség a Hive és a relációs adatbázisok között a következő;

A relációs adatbázisok a " Séma a READ-on és a Séma az íráson " típusúak . Először hozzon létre egy táblázatot, majd helyezzen be adatokat az adott táblába. A relációs adatbázis táblákon olyan funkciók hajthatók végre, mint a Beszúrások, a Frissítések és a Módosítások.

A kaptár " séma csak READ-on ". Tehát az olyan funkciók, mint a frissítés, a módosítások stb., Nem működnek ezzel. Mivel egy tipikus fürt Hive lekérdezése több adatcsomóponton fut. Tehát nem lehet több csomóponton keresztül frissíteni és módosítani az adatokat. (Hive verziók 0,13 alatt)

A Hive támogatja a „ READ Many WRITE Once ” elolvasását is. Ami azt jelenti, hogy a táblázat beszúrása után frissíthetjük a táblázatot a legújabb Hive verziókban.

MEGJEGYZÉS : A Hive új verziója azonban frissített szolgáltatásokkal érkezik. A Hive verziók (Hive 0.14) új funkcióként a Frissítés és Törlés lehetőségeket kínálják fel

Hive építészet

A fenti képernyőkép részletesen elmagyarázza az Apache Hive architektúráját

A kaptár főleg három magrészből áll

  1. Hive kliensek
  2. Hive Services
  3. Kaptár tárolása és számítása

Hive kliensek:

A Hive különböző illesztőprogramokat kínál a kommunikációhoz különböző típusú alkalmazásokkal. A Thrift alapú alkalmazások számára a Thrift klienst biztosítja a kommunikációhoz.

A Java-val kapcsolatos alkalmazásokhoz a JDBC illesztőprogramokat biztosítja. Bármilyen típusú alkalmazáson kívül ODBC illesztőprogramokat biztosított. Ezek az ügyfelek és illesztőprogramok viszont ismét kommunikálnak a Hive szerverrel a Hive szolgáltatásokban.

Hive Services:

A Hive szolgáltatással történő ügyfél-interakciókat a Hive Services-en keresztül lehet végrehajtani. Ha az ügyfél bármilyen lekérdezéssel kapcsolatos műveletet szeretne végrehajtani a Hive-ban, akkor a Hive Services-en keresztül kell kommunikálnia.

A CLI a parancssori felület Hive szolgáltatásként működik a DDL (Data Definition Language) műveleteknél. Minden illesztőprogram kommunikál a Hive kiszolgálóval és a Hive szolgáltatások fő illesztőprogramjával, a fenti architektúra diagram szerint.

A Hive szolgáltatásokban jelen lévő illesztőprogram jelenti a fő meghajtót, és minden típusú JDBC, ODBC és más kliensspecifikus alkalmazásokat kommunikál. Az illesztőprogram feldolgozza ezeket a kérelmeket a különböző alkalmazásoktól a meta tároló és terepi rendszerek felé további feldolgozás céljából.

Kaptár tárolása és számítása:

A Hive-szolgáltatások, például a Meta Store, a File System és a Job Client, kommunikálnak a Hive Storage-tal, és a következő műveleteket hajtják végre

  • A Hive-ban létrehozott táblák metaadat-információit a Hive "Meta storage database" tárolja.
  • A lekérdezés eredményeit és a táblákba töltött adatokat a Hadoop-fürt HDFS-en tárolja.

Munkahelyi munkafolyamat:

A fenti képernyőkép alapján megérthetjük a Hive-vel végrehajtott Job végrehajtási folyamatot

A Hive-ben az adatáramlás a következő mintán működik;

  1. Lekérdezés végrehajtása a felhasználói felületről (felhasználói felület)
  2. A járművezető interakcióba lép a Compilerrel a terv elkészítéséhez. (Itt a terv a lekérdezés végrehajtására utal) folyamat és a kapcsolódó metaadatok információgyűjtése
  3. A fordító elkészíti a végrehajtandó munka tervét. A Meta áruházzal kommunikáló fordító a metaadatkérés megszerzéséhez
  4. A metabolt visszaküldi a metaadatokat a fordítónak
  5. A fordító az illesztőprogrammal kommunikál a lekérdezés végrehajtásának javasolt tervével
  6. Illesztőprogram végrehajtási terveket küld az Execution motorhoz
  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ában. DFS műveletekhez.
  • Az EE-nek először kapcsolatba kell lépnie a Node Node-tal, majd az Data csomópontokkal, hogy megkapja a táblákban tárolt értékeket.
  • Az EE be akarja tölteni a kívánt rekordokat az adatcsomópontokból. A táblák tényleges adatai csak az adatcsomópontokban találhatók. Míg a Névcsomópontból csak a lekérdezés metaadat-információit szerzi be.
  • A tényleges adatokat az említett lekérdezéshez kapcsolódó adatcsomópontokból gyűjti
  • Az Execution Engine (EE) kétirányúan kommunikál a Hive-ban található Meta tárolóval a DDL (Data Definition Language) műveletek végrehajtása érdekében. Itt olyan DDL műveletek történnek, mint a CREATE, DROP és ALTERING táblák és adatbázisok. A metabolt csak az adatbázis nevéről, a táblák és az oszlopok nevéről tárol információkat. Megkapja az említett lekérdezéssel kapcsolatos adatokat.
  • Az Execution Engine (EE) viszont olyan Hadoop démonokkal kommunikál, mint a Név csomópont, Adat csomópontok és a Munkakövető, hogy végrehajtsa a lekérdezést a Hadoop fájlrendszer tetején
  1. Eredmények lekérése az illesztőprogramból
  2. Eredmények küldése az Execution motorhoz. Miután az eredmények az adatcsomópontokról be lettek töltve az EE-hez, az eredményeket visszaküldi az illesztőprogramnak és a felhasználói felületnek

Hive Folyamatosan érintkezik a Hadoop fájlrendszerrel és annak démonjaival az Execution motoron keresztül. A Job folyamatábra pontozott nyílja mutatja az Execution motor kommunikációját Hadoop démonokkal.

A kaptár különböző módjai

A Hive két módban működhet, a Hadoop adatcsomópontok méretétől függően.

Ezek a módok:

  • Helyi mód
  • Térképcsökkentés mód

Mikor kell használni a Helyi módot:

  • Ha a Hadoop pszeudo módban telepített egy adatcsomópontot, akkor a Hive-ot ebben a módban használjuk
  • Ha az adatméret kisebb, és 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 adathalmazokon

Mikor használja a Térképcsökkentés módot:

  • Ha Hadoop-nak több adatcsomópontja van, és az adatok különböző csomópontokon vannak elosztva, akkor a Hive-ot ebben a módban használjuk
  • Nagy mennyiségű adathalmazon és párhuzamosan végrehajtandó lekérdezésen fog teljesíteni
  • Nagyobb teljesítményű nagy adathalmazok feldolgozása érhető el ezzel a móddal

A Hive-ban beállíthatjuk ezt a tulajdonságot, hogy megemlítsük, melyik mód működik a Hive-on? Alapértelmezés szerint Map Reduce módban működik, és helyi módban a következő beállításokat végezheti el.

Hive dolgozni helyi módban beállítva

SET mapred.job.tracker = helyi;

A Hive 0.7-es verziójától támogat egy módot, amely automatikusan futtatja a térképet a munkahelyek csökkentése érdekében.

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
  • Szerezze be az említett lekérdezések eredményeit

A legújabb verziótól kezdve néhány olyan speciális funkcióval rendelkezik, amelyek a Thrift RPC-n alapulnak, például;

  • Több ügyfél egyidejűsége
  • Hitelesítés

Összegzés:

A Hive egy ETL és adattárház eszköz a Hadoop ökoszisztéma tetején, és strukturált és félig strukturált adatok feldolgozására szolgál.

  • A Hive egy adatbázis, amely a Hadoop ökoszisztémában található, DDL és DML műveleteket hajt végre, és rugalmas lekérdezési nyelvet biztosít, például HQL-t az adatok jobb lekérdezéséhez és feldolgozásához.
  • Annyi funkcióval rendelkezik az RDMS-hez képest, amelynek bizonyos korlátai vannak.

A felhasználóspecifikus logika érdekében, hogy megfeleljen az ügyfél követelményeinek.

  • Lehetőséget nyújt egyedi 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 vödröket is biztosít tárolási specifikus logikákhoz.