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
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
- Hive ügyfelek
- Hive szolgá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ő 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:
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;
- Lekérdezés végrehajtása a felhasználói felületről (felhasználói felület)
- 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
- 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
- A Meta Store visszaküldi a metaadat-információkat a fordítónak
- A fordító kommunikál a meghajtóval a lekérdezés végrehajtásának javasolt tervével
- Illesztőprogram végrehajtási terveket küld a végrehajtási motornak
- 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.
- Eredmények lekérése az illesztőprogramtól
- 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.