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
- Minta lekérdezés : Válassza a * lehetőséget a
- 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
- Hive kliensek
- Hive Services
- 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;
- Lekérdezés végrehajtása a felhasználói felületről (felhasználói felület)
- 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
- 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
- A metabolt visszaküldi a metaadatokat a fordítónak
- A fordító az illesztőprogrammal kommunikál a lekérdezés végrehajtásának javasolt tervével
- Illesztőprogram végrehajtási terveket küld az Execution motorhoz
- 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
- Eredmények lekérése az illesztőprogramból
- 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.